Merkkijonot
Merkkijonot ovat toinen hyvin useasti käsiteltävät tyyppi. Merkkijono on
tyypiltään string
.
typeof 'www-kurssi' // 'string
Pituus
Merkkojonolla on aina pituus, joka löytyy aina sen length
-ominaisuudesta.
"Maijal oli karitsa".length // 18
var kurssi = 'www-ohjelmointi';
kurssi.length // 15
Indeksointi
Merkkijonot ovat nimensä mukaisesti jono merkkejä. Merkit ovat siis tietyssä järjestyksessä ja niiden sijainnit ovat numeroidut indekseillä. Javascriptissä, kuten suurimmassa osassa ohjelmointikielistä, merkkien paikkojen numerointi alkaa nollasta.
Merkkijonon paikassa n
olevaan kirjaimeen voi viitata hakasuljemerkinnällä
muuttujanNimi[n]
.
"Kissa"[0] // 'K'
var elain = 'Koira';
elain[2] // 'i'
elain[elain.length - 1] // 'a' (viimeinen kirjain)
Merkkijonolta voi kysyä yksittäisen merkin ensimmäisen esiintymän indeksiä
metodilla indexOf()
. Jos merkki esiinty useammin, kuin kerran, palautetaan
ensimmäisen esiintymän indeksi. Jos merkkiä ei löydy merkkijonosta, on
paluaarvona -1
.
var elain = "Koira";
elain.indexOf('i'); // 2
elain = "Kissa";
elain.indexOf('s') // 2 (ensimmäinen 's'-kirjain)
elain.indexOf('r') // -1 (ei löytynyt)
Merkkijonojen yhdistäminen
Merkkijonoja voidaan katenoida, eli kirjoittaa yhteen +
-operaattorilla.
"www-" + "kurssi" // "www-kurssi"
Osamerkkijono
Merkkijonoista voi kopioida alimerkkijonon kahdella eri metodilla. Näistä substring(alku, loppu)
saa kaksi parametria, joista ensimmäinen kertoo indeksin, josta haluttu merkkijono alkaa
ja toinen kertoo ensimmäisen pois jäävän merkin indeksin. Jos toinen parametri jätetään
pois, saadaan paluuarvona alimerkkijono aloituskohdasta merkkijonon loppuun saakka.
Aloitus- ja lopetusindeksit voidaan kertoa myös “takaperin”.
"Linnanmäki".substring(2, 8) // "nnanmä"
"Linnanmäki".substring(8, 2) // "nnanmä"
"Linnanmäki".substring(5) // "nmäki"
Toinen metodi, jolla merkkijonosta saadaan leikattua pätkiä, on substr(alku, pituus).
Tämä metodi toimii muuten samoin kuin
substring()`, mutta jälkimmäinen parametri ei
olekaan indeksi vaan merkkijonosta leikattavan osuuden pituus.
Lisäksi substr()
huolii indeksiksi myös negatiivisen luvun, jolloin sijainnin
laskeminen aloitetaankin lopusta. Indeksi -1
on viimeinen kirjain, -2
toiseksi
viimeinen ja niin edelleen.
"Aurajoki".substr(2, 2) // "ra"
"Aurajoki".substr(2) // "rajoki"
"Aurajoki".substr(-3) // "oki"
Erikoismerkit
On joitain erikoismerkkejä, joita on hankala kirjoittaa merkkijonoon suoraan.
Esimerkiksi rivinvaihtoja ei voida kirjoittaa merkkijonoihin suoraa sellaisenaan.
Näiden merkkien kirjoittamiseen käytetään takakenomerkin \
avulla kirjoitettavia
“escape-komentoja”. Näistä tärkeimpiä ovat esimerkiksi:
Escape | Merkitys |
---|---|
\n |
Rivinvaihto |
\t |
Tabulaattorimerkki |
\' |
Yksöislainausmerkki |
\" |
Kaksoislainausmerkki |
\\ |
Takakeno |
\udddd |
Unicode-merkki neljällä heksadesimaalinumerolla. Esimerkiksi © on \u00A9 |
Esimerkiksi:
var merkkijono = "Pekka sanoi: \t \"Olipa hyvä elokuva.\"\nOlli vastasi: \t \"Niin oli.\"\n\\o/\n\u262D \u2602";
console.log(merkkijono);