Szövegek
Bővebben a stringekről¶
A stringeket leggyakrabban aposztrófok ('...') vagy idézőjelek ("...") között szoktuk megadni. A két megadási mód között lényegi különbség nincs.
Több soros szövegeket backtick karakterek (AltGr + 7) között adhatunk meg.
1 2 3 4 |
|
Escape szekvenciák¶
A stringekben speciális karaktereket escape szekvenciákkal adhatunk meg:
1 2 3 4 5 6 7 8 9 |
|
Kimenet
First line
Second line With tab
He said: "Hello world!"
C:\Users\student\Documents
It's a beautiful day
Gyakori escape szekvenciák:
\n
- új sor\t
- tabulátor\"
- idézőjel\'
- aposztróf\\
- backslash
Alapműveletek¶
A stringek összefűzése a +
(plusz) operátorral történik.
1 2 |
|
Kimenet
JavaScript
Szövegek hossza¶
JavaScriptben egy string hosszát a length
property-vel tudjuk lekérdezni.
1 2 |
|
Kimenet
10
Karakterek indexelése¶
A stringek karaktereit JavaScriptben szögletes zárójel operátorral indexelhetjük: text[index]
. A karakterek indexelése itt is 0-tól kezdődik.
1 2 3 4 5 |
|
Kimenet
The character at index 0: H
The character at index 4: o
The last character: d
Fontos megjegyezni, hogy a Pythonban létező negatív indexelés, illetve intervallumos indexelés JavaScriptben nem működik! Amennyiben alul- vagy túlindexeljük a stringet, undefined
értéket kapunk.
1 2 3 4 |
|
Kimenet
undefined
undefined
Immutable adattípus¶
A string adattípus JavaScriptben is immutable, tehát a szövegek kezdeti értéke nem változtatható meg.
1 2 3 4 |
|
Kimenet
goat
Stringek összehasonlítása¶
A stringek összehasonlítása lexikografikus (szótár) sorrendben történik:
1 2 3 4 5 6 7 8 |
|
Kimenet
true
true
true
true
false
false
Stringkezelő függvények¶
JavaScriptben rengeteg beépített stringkezelő függvényt használhatunk. Tekintsük át ezek közül a kurzus szempontjából a legfontosabbakat!
Alapvető metódusok¶
s.toLowerCase()
: csupa kisbetűssé alakítja azs
stringets.toUpperCase()
: csupa nagybetűssé alakítja azs
stringets.trim()
: eltávolítja a helyközöket azs
string elejéről és végéről
Keresési és vizsgálati metódusok¶
s.startsWith(v)
: igazat ad vissza, ha azs
string av
értékkel kezdődiks.endsWith(v)
: igazat ad vissza, ha azs
string av
értékre végződiks.indexOf(text)
: visszaadja atext
szöveg legelső előfordulásának a kezdőindexét azs
stringen belül (-1
-et ad vissza, ha a keresett szöveg nem szerepel azs
stringben)s.includes(text)
: igazat ad vissza, ha azs
string tartalmazza atext
szöveget (modern alternatíva azindexOf
-hoz)
Kivágási és részstring metódusok¶
s.substring(start, end)
: visszaadja azs
stringből egy részstringet astart
indextől azend
indexig (nem beleértve)s.slice(start, end)
: hasonló asubstring
-hez, de támogatja a negatív indexeket is
Figyelem
A substr()
metódus elavult (deprecated), helyette használjuk a substring()
vagy slice()
metódusokat!
Csere és átalakítási metódusok¶
s.replace(old, new)
: lecseréli azs
stringben a legelsőold
részstringet anew
szövegres.replaceAll(old, new)
: lecseréli azs
stringben az összesold
részstringet anew
szövegres.split(delim)
: feldarabolja azs
stringetdelim
karakterek mentén (egy tömböt ad vissza)
Modern metódusok¶
s.repeat(n)
: azs
stringetn
-szer megismétlis.padStart(length, padString)
: kiegészíti azs
stringet balról a megadott hosszúságigs.padEnd(length, padString)
: kiegészíti azs
stringet jobbról a megadott hosszúságig
Példa: Stringkezelő függvények használata
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
Kimenet
the lemon ice cream is the best ice cream
THE LEMON ICE CREAM IS THE BEST ICE CREAM
true
The lemo
The lemo
The lemon cake is the best ice cream
The text contains ice cream!
The lemon cake is the best cake
[
'The', 'lemon',
'ice', 'cream',
'is', 'the',
'best', 'ice',
'cream'
]
HiHiHi
005
Price.....
Template stringek¶
Ha egy szövegen belül be szeretnénk helyettesíteni bizonyos változók értékeit, akkor erre eddig a hagyományos string összefűzést használtuk.
1 2 |
|
Ha nagyon sok behelyettesítendő értékünk van, akkor egy idő után ez a módszer fárasztóvá válhat.
Szerencsére az ECMAScript 6-os szabványban bevezették az úgynevezett template stringeket, amelyek segítségével a fenti kiíratás egyszerűbben megoldható.
A template stringeket backtick-ek (AltGr + 7) között adjuk meg. Használatuk során nem kell megszakítanunk a szövegünket a változók értékének behelyettesítésekor (ellentétben az összefűzéses módszernél), a behelyettesíteni kívánt kifejezés értékét egyszerűen ${ }
-be írjuk.
1 2 |
|
Előnyei:
- Jobb olvashatóság, nem kell megszakítani a szöveget
- Automatikusan támogatja az új sorokat (ahogy ezt láttuk fentebb is)
- Bármilyen JavaScript kifejezést használhatunk a template stringekben
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Kimenet
Customer: John Doe
Price: $100
Tax: $20
Total: $120
Calculation: 5 equals five