A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Következő változat | Előző változat | ||
oktatas:web:javascript:regex [2019/08/22 20:06] admin létrehozva |
oktatas:web:javascript:regex [2021/02/21 16:21] (aktuális) admin [Speciális karakterek a szabályos kifejezésekben] |
||
---|---|---|---|
Sor 4: | Sor 4: | ||
* **Szerző:** Sallai András | * **Szerző:** Sallai András | ||
- | * Copyright (c) Sallai András, 2015, 2017 | + | * Copyright (c) Sallai András, 2015, 2017, 2021 |
* Licenc: GNU Free Documentation License 1.3 | * Licenc: GNU Free Documentation License 1.3 | ||
- | * Web: http://szit.hu | + | * Web: https://szit.hu |
===== Bevezetés ===== | ===== Bevezetés ===== | ||
- | A Regex a Regular Expressions rövidítése, magyarul szabályos kifejezések. | + | A **Regex** a **Regular Expressions** rövidítése, magyarul szabályos kifejezések. |
A szabályos kifejezések lehetővé teszik karakterek egyeztetését karaktersorozatokban. | A szabályos kifejezések lehetővé teszik karakterek egyeztetését karaktersorozatokban. | ||
- | Használhaót a **RegExp** **exec()** és **test()**, a **String match(), replace(), search()** és **split()** metódusaival. | + | Használható objektumok és függvények: |
+ | * RegExp | ||
+ | * exec() | ||
+ | * test() | ||
+ | * String | ||
+ | * match() | ||
+ | * replace() | ||
+ | * search() | ||
+ | * split() | ||
===== Szabályos kifejezések készítése ===== | ===== Szabályos kifejezések készítése ===== | ||
+ | A szabályos kifejezések mintáit két / karakter között adjuk meg. | ||
+ | A második perjel után módosítók adhatók meg. | ||
+ | Szintaxis: | ||
<code javascript> | <code javascript> | ||
/minta/módosítók; | /minta/módosítók; | ||
</code> | </code> | ||
+ | A szabályos kifejezések tárolhatók változókban: | ||
<code javascript> | <code javascript> | ||
var szabalyosKifejezes = /ab+/; | var szabalyosKifejezes = /ab+/; | ||
Sor 27: | Sor 37: | ||
- | RegExp-el: | + | Létrehozás RegExp() konstruktorral: |
<code javascript> | <code javascript> | ||
var szabalyosKifejezes = new RegExp('ab+'); | var szabalyosKifejezes = new RegExp('ab+'); | ||
Sor 39: | Sor 49: | ||
</code> | </code> | ||
- | Példa metódusban, replace() metódussal: | + | Példa replace() függvénnyel: |
<code javascript> | <code javascript> | ||
function noSpace(x){ | function noSpace(x){ | ||
Sor 46: | Sor 56: | ||
</code> | </code> | ||
+ | A példában a npSpace függvény töröl minden szóközt az x-ből. | ||
+ | |||
+ | ===== Gyakorlat ===== | ||
+ | ==== Igen nem válasz ==== | ||
+ | |||
+ | Vizsgáljuk meg, hogy a válasz igen, vagy más. | ||
+ | Igennek vesszük, ha a szövegben található (i) betű. | ||
+ | |||
+ | <code javascript> | ||
+ | var valasz = 'igen'; | ||
+ | var valaszMinta = /i/; | ||
+ | |||
+ | if (valasz.match(valaszMinta)) { | ||
+ | console.log('Ok'); | ||
+ | }else { | ||
+ | console.log('Nem ok'); | ||
+ | } | ||
+ | |||
+ | </code> | ||
+ | A válaszban valahol szerepelnie kell egy (i) betűnek. | ||
+ | |||
+ | Találat esetén egy objektumot kapunk: | ||
+ | * ["i", index: 0, input: "igen", groups: undefined] | ||
+ | Ha nincs találat: | ||
+ | * null | ||
+ | |||
+ | |||
+ | Ha az illeszkedést csak akkor szeretnénk, ha az i betű a sor elején van, | ||
+ | akkor tegyük egy (^) karaktert az (i) elé. | ||
+ | |||
+ | <code javascript> | ||
+ | var valaszMinta = /^i/; | ||
+ | </code> | ||
+ | |||
+ | Ha csak az (i) betűt szeretnénk elfogadni, akkor tegyünk illeszkedést | ||
+ | a sor végére is: | ||
+ | <code javascript> | ||
+ | var valaszMinta = /^i$/; | ||
+ | </code> | ||
+ | ==== i vagy n ==== | ||
+ | |||
+ | Elfogadjuk az (i) és az (n) karaktert. | ||
+ | Szögletes zárójelek között megadhatjuk a lehetséges karaktereket. | ||
+ | |||
+ | <code javascript> | ||
+ | var valaszMinta = /^[in]$/; | ||
+ | </code> | ||
+ | |||
+ | A szögletes zárójelek között megadott karakterek mindig 1 darab karaktert | ||
+ | jelentenek. Esetünkben 1 darab (i) vagy 1 darab (n) betűt. | ||
+ | ==== Érdemjegyek vizsgálata ==== | ||
+ | |||
+ | Az érdemjegyben szerepelnie kell számoknak. | ||
+ | A lehetséges számjegyek csak 1, 2, 3, 4 vagy 5. | ||
+ | |||
+ | |||
+ | <code javascript> | ||
+ | var valaszMinta = /^[12345]$/; | ||
+ | </code> | ||
+ | |||
+ | Megadható intervallum formájában is: | ||
+ | <code javascript> | ||
+ | var valaszMinta = /^[1-5]$/; | ||
+ | </code> | ||
===== Módosítók ===== | ===== Módosítók ===== | ||
+ | A módosítókat mindig a két (/) karakter után írjuk. | ||
+ | A mintailleszkedésen kicsit módosítanak. | ||
^ Módosító ^ Leírás ^ | ^ Módosító ^ Leírás ^ | ||
- | | i | Kis- és nagybetű érzékeny | | + | | i | Kis- és nagybetű érzékenység kikapcsolva | |
| g | globális egyezés, az összes egyezést megkeresi \\ másként csak az elsőként előfordulóra érvényes | | | g | globális egyezés, az összes egyezést megkeresi \\ másként csak az elsőként előfordulóra érvényes | | ||
| m | Többsoros egyezés | | | m | Többsoros egyezés | | ||
+ | |||
+ | |||
+ | ==== Módosítók gyakorlat ==== | ||
+ | |||
+ | A következő példában elfogadjuk a kis és nagy (i) betűket is: | ||
+ | <code javascript> | ||
+ | var valasz = 'I'; | ||
+ | var valaszMinta = /^i$/i; | ||
+ | </code> | ||
===== Speciális karakterek a szabályos kifejezésekben ===== | ===== Speciális karakterek a szabályos kifejezésekben ===== | ||
Sor 95: | Sor 180: | ||
</code> | </code> | ||
- | A fenti példa true értéket jelenít meg, mivel a "val" és a "ami" szó szerepel a szó elején és a végén is. A \1 az első csoportot jelenti, a \2 a második csoportot. | + | A fenti példa true értéket jelenít meg, mivel a "val" és az "ami" szó szerepel a szó elején és a végén is. A \1 az első csoportot jelenti, a \2 a második csoportot. |
- | Sokszorozók: | + | ===== Sokszorozók ===== |
^ Szimbólum ^ Leírás ^ | ^ Szimbólum ^ Leírás ^ | ||
Sor 108: | Sor 194: | ||
| {n,} | Az előtte lévő karakter legalább n-szer. | | | {n,} | Az előtte lévő karakter legalább n-szer. | | ||
+ | |||
+ | ===== Karakterosztályok ===== | ||
^ Jelölés ^ Leírás ^ | ^ Jelölés ^ Leírás ^ | ||
Sor 116: | Sor 204: | ||
Az [a-z.] megegyezik a \w jelöléssel. | Az [a-z.] megegyezik a \w jelöléssel. | ||
+ | |||
+ | |||
+ | ===== Vagy ===== | ||
^ Jelölés ^ Leírás ^ | ^ Jelölés ^ Leírás ^ |