Az illesztőkifejezés a sztringek kezelésének
hatékony eszköze. Egy mintát illesztünk a sztringre,
és megvizsgáljuk, hogy a kifejezés illeszkedik-e rá
vagy sem. Ha igen, akkor cserét is hajthatunk végre az
adott ponton. Többnyire űrlapok tesztelésére,
mintakeresésre és szűrésre használjuk. Közvetlenül
az alábbi string metódusok esetében
alkalmazzuk : match() replace()
és search(). Általános
formája : kifejezés = /minta/kapcsoló. A
JavaScript RegExp objektumot általában
futásidőben, dinamikusan hozzuk létre:
Példa:
<html><head><title>Teszt</title>
<script language="JavaScript">
function illeszt(ertek) {
var kif = /(\w.+)\s(\w.+)/;
kif.exec(ertek);
alert(RegExp.$2 + ", " + RegExp.$1);
}
</script>
</head><body>
<form>
<input name="User" value="Előnév utónév">
<input type=button value=
"Vizsgálat" onClick="illeszt(this.form.User.value)">
</form>
</body></html>
|
Magyarázat:
A példában egy űrlapon egy beviteli mező és egy
nyomógomb látható. A gomb megnyomásával az illeszt()
függvényt hívjuk meg, melynek paramétere a beviteli
mező tartalma. Az illesztő kifejezést, melyet a
kif változóban tárolunk, és mely a /.../
közé van zárva, a így kell olvasni : Keresd a
tetszőleges számban előforduló betűket számok és
vezérlőjelek nélkül, majd az eredményt rakd a : (\w.+)-be.
Majd keress egy szőköz jelet, mely után levő
tetszőleges betűket rakd a : (\w.+)-be. A két
kerek zárójel arra szolgál, hogy a közéjük zárt
betűsorozatot külön-külön megszólíthassuk.
Tulajdonképpen a következő sorban lévő RegExpr
objektum exec() metódusának hívásával
hajtjuk végre a vizsgálatot ( illesztést). Egy
üzenőablakban megjelenítjük először a második,
majd egy vessző után az első kifejezést, tehát
felcserélve kiiratjuk a páciens nevének elő RegExp.$1
és utótagját RegExp.$2 .
Az illesztőkifejezések szintakszisa :
Speciális karakter
|
Kifejezés minta
|
Magyarázat és példa |
|
/egy/ |
Illeszkedik bárhol a vizsgálandó
sztringben lévő karakterekre Pl : "egybekeltek"
, "Nyíregyháza" ,
"begy" |
^ |
/^mia/ |
Illeszkedik a vizsgálandó sztring elején
(az első szóban lévő) karakterekre.Pl:"miamanó
Palapalkó" |
$ |
/mia$/ |
Illeszkedik a vizsgálandó sztring végén
(az utolsó szóban lévő) karakterekre. Pl:
"Palapalkó haramia" |
* |
/mia*/ |
az utolsó karakter 0-szor vagy többször
szerepelhet Pl : "harami" |
+ |
/mia+/ |
az utolsó karakter legalább egyszer
szerepel Pl : "miaaaaa" |
. |
/.erem/ |
Illeszkedik bármely karakterre, (a sorvége
jel kivételével), mely az adott helyen
szerepel. Pl: "verem",
"terem" , "merem" |
.+ |
/.+erem/ |
Illeszkedik bármely karakterre, adott
helyen, tetszőleges számú előfordulással.
Pl: "Így kevvverem a
kását" |
\b |
/\bki\b/ |
Csak egész szóra illeszkedik, tehát a
"\b"szóhatárt jelent |
\B |
/\Bki\B/ |
Nem csak egész szóra illeszkedik, tehát a
"\B" jelentése : nincs szóhatár |
\d |
/\d.+\B/ |
Illeszkedik egy számra (0 -tól 9-ig), így
a \d jelentése : szám |
\D |
/\D.+/ |
Ha nem szám akkor
illeszkedik rá. Pl:"-fejű" a
"7-fejű sárkány" -ban |
\f |
/\f/ |
Illeszkedik a lapdobás jelre (un. fehér
jel) |
\n |
/\n/ |
Illeszkedik a soremelés jelre (un. fehér
jel) |
\r |
/\r/ |
Illeszkedik a kocsivissza jelre (un. fehér
jel) |
\t |
/\t/ |
Illeszkedik a tabulator jelre (un. fehér
jel) |
\v |
/\v/ |
Illeszkedik a függőleges tabulator jelre :
| (un. fehér jel) |
\s |
/\s/ |
Illeszkedik mindenfajta fehér jelre, tehát
a \f\n\t\v-re és a szóköz jelre |
\S |
/\S.+/ |
Illeszkedik egy bizonyos jelre, mely
nem fehér jel, tehát a \f\n\t\v-re és
a szóköz jelre nem |
\w |
/\w.+/ |
Illeszkedik minden alfanumerikus jelre és
aláhúzásjelre |
\W |
/\W/ |
Illeszkedik minden nem
alfanumerikus és nem
aláhúzás jelre.Tipikus alkalmazási terület :
illegális karakterek lekérdezése
sajátmegadású nevek esetén |
\() |
/(ki)/ |
Illeszkedik a "ki"-re és
eltárolja. Össz : 9 ilyen illesztőkifejezés
tárhely van |
/.../g |
/ki/g |
Illeszkedik a "ki"-re majd a
találati helyeket egy tömbben tárolja el |
/.../i |
/ki/i |
Illeszkedik a "ki"-re függetlenül
attól, hogy kis vagy nagybetűvel írtuk Pl :
"ki","Ki","KI" mind
találat . |
$1-9 tárhelyen eltárolja egy illesztőkifekjezés
zárójelben levő részét.
Példa:
<html><head><title>Teszt</title>
</head><body>
<script language="JavaScript">
verzio = /(\d)/;
verzio.exec(navigator.userAgent);
document.write("A Browser verziója : " + RegExp.$1);
</script>
</body></html>
|
Magyarázat:
A példában a létrehozunk egy illasztőkifejezést verzio
néven, melyben egy számot keresünk az alábbi módon :
= (\d) Ezt a kifejezést aztán a navigator userAgent elemváltozóra
illesszük, mely a böngésző teljes verziószámát
tartalmazza.
Végrehajtja a kifejezés illesztését a
karakterláncra.
Példa:
<html><head><title>Teszt</title>
</head><body>
<script language="JavaScript">
mondat = "Ki a Tisza vizét issza, vágyik annak szive vissza";
keress = /(issza)/g;
eredmeny = keress.exec(mondat);
document.write(eredmeny.length + " : találat");
</script>
</body></html>
|
Magyarázat:
Az illesztőkifejezés találatait egy tömbben
tároljuk el, majd a találatokat kiiratjuk.
Megadja, hogy az illesztőkifejezésnek megfelelően
van e találat vagy nincs. A visszatérő érték true
ha talált ilyet a próba során és false, ha
nem.
Példa:
<html><head><title>Teszt</title>
</head><body>
<script language="JavaScript">
mondat = "Ki a Tisza vizét issza, vágyik annak szive vissza";
keress = /(issza)/g;
eredmeny = keress.Test(mondat);
if(eredmeny == false)
document.write("Nincs találat");
</script>
</body></html>
|
|