< JavaScript

JavaScript Regex

Szerző: Sallai András

Copyright © Sallai András, 2015, 2017

Licenc: GNU Free Documentation License 1.3

Web: http://szit.hu

Bevezetés

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. Használhaót a RegExp exec() és test(), a String match(), replace(), search() és split() metódusaival.

Szabályos kifejezések készítése

/minta/módosítók;
var szabalyosKifejezes = /ab+/;

RegExp-el:

var szabalyosKifejezes = new RegExp('ab+');

Példa módosítóval:

var szabalyosKifejezes = /szit/i;

Példa metódusban, replace() metódussal:

function noSpace(x){ return x.replace(/ /g, ""); }

Módosítók

Módosító	Leírás
i	Kis- és nagybetű érzékeny
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

Speciális karakterek a szabályos kifejezésekben

Egyezés	Leírás
\	A backslash karakterrel azt mondjuk meg, hogy a következő karakternem nem szeretnénk speciálisként értelmezni
^	Illeszkedés a sor elejére
$	Illeszkedés a sor végére
.	Minden karakterre egyezik az új sor és a kocsi-vissza kivételével
(x)	Csoportok létrehozása. A csoportokra később hivatkozhatunk \1 az első csoport. \2 a második csoport.
\w	Egy szó egy karaktere.
\W	Ami nem egy szó karaktere.
\d	Számra egyezik.
\D	Nem számra egyezik.
\s	White-space karakterre illeszkedik.
\S	Nem white-space karakterre illeszkedik.
\b	Szó előtt és szó utáni karakterre illeszkedik.
\B	Minden ami nem a szó előtt és nem a szó után van.
\0	NUL karakter.
\n	Újsor
\f	Lapdobás
\r	Kocsi vissza karakter
\t	Tabulátor
\v	Vertikális tabulátor
\xxx	Karakterkód oktális számmal
\xdd	Karakterkód hexadecimális számmal
\uxxxx	Unicode karakter hexadecimálisan

Példa a csoportokra hivatkozásra.

var s = "valamiaaaavalami"; alert( /(val)(ami).*\1\2/.test(s) );

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.

Sokszorozók:

Szimbólum	Leírás
+	Az előtte lévő karakter egyszer vagy többször
*	Az előtte lévő karakter nullaszor vagy többször
?	Az előtte lévő karakter nullaszor vagy egyszer
{n}	Az előtte lévő karakter pontosan n-szer
{n,m}	Az előtte lévő karakter n-től m-ig.
{n,}	Az előtte lévő karakter legalább n-szer.
Jelölés	Leírás
[abc]	Egyetlen karakter, vagy „a”, vagy „b”, vagy „c” betű
[a-z]	Egyetlen karakter a és z között
[A-Z]	Egyetlen karakter A és Z között
[^abc]	Egyetlen karakter, amely nem a szögletes zárójelek közötti karakter. Kizárás

Az [a-z.] megegyezik a \w jelöléssel.

Jelölés	Leírás
a|b	Vagy „a” vagy „b”

Függvények

Függvények
Függvény	Leírás
RegEx metódusai
test()	var str = „valami”; var res = /val/.test(str); res értéke true
exec()	var str = „valami”; var res = /val/.exec(str); res értéke „val”
String metódusai
match()	var str = „valami”; var res = str.match(/val/); res tartalma: „val”, egyébként null
replace()	var str = „valami”; var res = str.replace(/val/, „—”); res értéke —ami
search()	var str = „mégvalami”; var res = str.search(/val/); res eredménye 4
split()	var str = „egy:kettő:három”; var res = str.split(/:/); res[1] eredménye „kettő”

Linkek

http://www.w3schools.com/jsref/jsref_obj_regexp.asp

http://www.w3schools.com/js/js_regexp.asp