A reguláris kifejezések a javascript

általános leírása

A reguláris kifejezések példányok keressen meghatározott minták karaktereket a szöveges karakterláncok (úgynevezett keresési minta illesztés). Kétféle módon történő áthelyezését változók reguláris kifejezések, amelyek a következők:
Használata objektuminicializálókban: var re = / minta / kapcsolót.
A RegExp kivitelező: var RE = új RegExp ( "minta" [, "kapcsoló"]?).
Itt minta - reguláris kifejezés, és a kapcsoló - választható opciókkal.

Inicializáló objektum, például var re = / AB + C /. Meg kell alkalmazni abban az esetben, ha ez az érték a reguláris kifejezés alatt változatlan marad a forgatókönyv. Ezek a reguláris kifejezések össze a folyamat betöltése forgatókönyvet, és ezáltal gyorsabban fusson.

Constructor hívás, például var RE = új RegExp ( "AB + C"). Meg kell alkalmazni abban az esetben, ha a változó értéke megváltozik. Ha megy, hogy egy reguláris kifejezés többször, érdemes összeállítani a fordítási módszer hatékonyabb keresési mintákat.

Amikor létrehoz egy reguláris kifejezést kell tekinteni, hogy a következtetést, hogy idézőjelbe jár annak szükségességét, hogy a menekülési-szekvencia, mint bármely más szöveg konstans. Például, a következő két kifejezés ekvivalens:

A reguláris kifejezések használt módszerek exec és vizsgálati RegExp objektum és módszerek mérkőzés, cserélje ki, keresés, és az osztott String. Ha csak azt kell ellenőrizni, hogy az adott szöveg karaktersorozat, amely megfelel a modell, amely a vizsgálati módszerek, vagy a keresést. Ha azonban azt kell kivonat részkarakterláncként (vagy töredékszó) illeszkednek a mintára, akkor kell használni a módszereket exec vagy mérkőzés. cserélje eljárás megkeresi a megadott karaktersorozat, és helyette egy másik szöveg részenkénti módszer lehetővé teszi, hogy szét egy string több alkarakterláncok alapuló reguláris kifejezés vagy szabályos szöveg. További információ a reguláris kifejezések adottak a megfelelő módszereket.

Szabályos kifejezésszintaktikai

A reguláris kifejezés állhat rendes karakter; ebben az esetben felelnek meg az előre meghatározott kombinációja karakter a húr. Például a kifejezés / com / megfelel a kiválasztott részkarakterláncokat a következő sorokat: „dudor”, „ínyenc”, „parancsnoka a haditengerészet.” Azonban a rugalmasság és a szabályos kifejezés erejét adja a lehetőségét, hogy a speciális karaktereket, amelyek szerepelnek az alábbi táblázatban.

Különleges karakterek reguláris kifejezésekben:

\ - A karakterek általában kezelik szó, azt jelzi, hogy a következő karakter különleges. Például, / n / a levél n, és a / \ n / felel meg az új sor. Mert karakterek általában kezelik külön, az azt jelzi, hogy a karakter kell érteni. Például a / ^ / ez azt jelenti, a sor elejére, és / \ ^ / ^ felel meg egy karaktert. / \\ / egyezik egy backslash \.

^ - egyezik a sor elejére.

$ - Mérkőzés a sor végére.

* - Megfelel a megismétlése az előző karakter nulla vagy több alkalommal.

+ - Ez megfelel egy ismétlése az előző karakter egy vagy több alkalommal.

? - Megfelel megismétlése az előző karakter nulla vagy egy időben.

. - Ez minden karakterre illeszkedik, kivéve egy új sort.

(Minta) - Megfelel a vonal mintázata és emlékszik a talált egyezést.

(:? Pattern) - Megfelel a sor mintát, de nem emlékszik a mérkőzést. Csoportosítására részei a minta, például a / (?: T | shka) / - a rövidítés kifejezés / macska | cat /.

x | y - Mérkőzés x vagy y.

- n - a nem-negatív szám. Pontosan egyezik n előfordulása az előző karakter.

- n - a nem-negatív szám. Mérkőzések n vagy több előfordulása az előző karakter. / X / ekvivalens / x + /. / X / ekvivalens / X * /.

- n és m - egy nem-negatív szám. Match legalább n és legfeljebb m előfordulása az előző karakter. / X / ekvivalens / x? /.

[Xyz] - minden karakterre illeszkedik a zárójeles.

[^ Xyz] - minden karakterre illeszkedik, kivéve zárójelbe.

[A-Z] - mérkőzések bármely szimbólum a megadott tartományban.

[^ A-Z] - minden karakterre illeszkedik, kivéve fekvő említett tartományban.

\ B - Megfelel szóhatárt, hogy van, pozíciók között a szót, és a szóköz vagy soremelés ...

\ B - Tetszőleges eltérő helyzetben szóhatár.

\ CX - Mérkőzés a karakter a Ctrl + X Például a / \ cI / ekvivalens / \ t /.

\ D - a megfelelő szám. Ekvivalens a [0-9].

\ D - Megfelel nem numerikus karaktereket. Egyenértékű [^ 0-9].

\ N - Mérkőzés a karakter transzfer méret (FF).

\ N - megfelel egy új sor karakter (LF).

\ R - megfelel egy kocsi vissza (CR).

\ S - Mérkőzés a szóköz. Ekvivalensen / [\ f \ n \ r \ t \ v] /.

\ S - Tetszőleges nem szóköz karaktert. Ekvivalensen / [^ \ f \ n \ r \ t \ v] /.

\ T - Mérkőzés tab karaktert (HT).

\ V - Mérkőzés függőleges fül (VT).

\ W - Megfelel betűk, számok és az aláhúzás. Ekvivalensen / [A-Za-Z0-9_] /.

\ W - minden karakterre illeszkedik, kivéve a betűket, számokat vagy aláhúzás.
Ekvivalensen / [^ A-Za-Z0-9_] /.

\ N N - egy pozitív szám. Megfelel n-sósav tárolt substring. Úgy számítható ki balra zárójelben. Ha a baloldali zárójel szimbólum előtt kevesebb, mint n, ami megegyezik \ 0n.

\ N 0n - oktális szám, nem nagyobb, mint 377 karakterre illeszkedik nyolcas számrendszer beli n. Például a / \ 011 / ekvivalens / \ t /.

\ Xn n - egy hexadecimális szám, amely két számjegy. Mérkőzések a karakter hex kód N. Például a / \ X31 / ekvivalens / 1 /.

\ Un n - egy hexadecimális szám, amely négy számjegy. Megfelelő Unicode karakterek hexa n. Például a / \ u00A9 / ekvivalens / c /.

keresési lehetőségek

Amikor létrehoz egy reguláris kifejezés tudjuk meg további keresési beállítások:
i (figyelmen kívül hagyja az esetben). Nem tesz különbséget a kis- és nagybetűk.
g (globális keresés). Globális keresés minden előfordulását a minta.
m (többsoros). Sorokban kell kezelni több sorban is. Ha az m zászló, a ^ és a $ egyezik a kezdete és vége minden közös input string string helyett az elején és végén a teljes szöveg.
Bármilyen kombinációja a három lehetőség, például ig vagy GIM.

Most tekintsük a lehetőséget a globális keresést. Az általánosan alkalmazott módszer cserélni a keresési mintát és cserélje ki egy új karaktersorozat. A tény az, hogy alapértelmezés szerint ez a módszer helyettesíti csak az első részsztring és visszaadja az eredményt. Tételezzük fel az alábbiakat:

Végül a többsoros keresési opció lehetővé teszi mintaillesztést a bemeneti kifejezés, amely több sornyi szöveget, szimbólumokat csatlakozik egy sortörés. Alapértelmezésben mintaillesztést megszűnik, ha talált sortöréseket. Ez a lehetőség megoldja ezt a korlátozást, és mintaként szolgáló kutatást a sornak. Ez hatással van a értelmezését néhány speciális karaktereket a reguláris kifejezések, nevezetesen: Általában kalap megegyezik csak az első sort. Ha többvonalas keresés opció be van kapcsolva, akkor összehasonlítjuk bármelyik vonal elem, mely megelőzi egy sortörés. Normális $ karakter megegyezik csak az utolsó sort. Ha több keresési lehetőséget választja, azt összehasonlítjuk bármelyik vonal elem, amely a sortörés.

Memorizálása karaktersorozat egyezéseket talált

Ha része egy szabályos kifejezés zárójelben, akkor a megfelelő karaktersorozat fogják tárolni későbbi felhasználásra. Tulajdonságok $ 1 hozzáféréshez használt tárolt karakterláncot. $ 9 RegExp tárgyat vagy a tömb elemeinek által visszaadott exec és a mérkőzés. Az utóbbi esetben a száma, talált és tárolt alkarakterláncok korlátlan.

A következő script a helyére eljárás átrendezni szavak egy sorban. Ahhoz, hogy cserélje ki a megtalált szöveg használ tulajdonságait $ 1 és $ 2.

Ez a szkript megjeleníti a böngésző ablakban a szöveg:

mert \ W = [A-Za-Z0-9_] többféle böngésző, a magyar betűket nem fog működni. Ha azt akarjuk, hogy garantálják használni magyar betűket, majd mi lesz, hogy némileg módosítani a kódot:

Ez a szkript megjeleníti a böngésző ablakban a szöveg:

A reguláris kifejezések - egy hatékony eszköz a beérkező adatokat. Feladat, ki kell cserélni vagy keresési szöveget lehet szépen befejezte ezt a „nyelvet a nyelv.” Bár a maximális hatás reguláris kifejezések használata által érhető el a szerver oldali nyelv, de nem szabad alábecsülni annak lehetőségét, ezt az alkalmazást, és a kliens oldalon.

alapfogalmak

A reguláris kifejezések (reguláris kifejezés) - eszköz gépsorokat vagy karaktersor, amely meghatározza a sablon szöveget.

Módosítót - célja, hogy „utasítsa” a reguláris kifejezés.
Metakarakterek - Különleges karakterek szolgáló utasításokat reguláris kifejezések nyelve.

A szabályos kifejezés definíció szerint egy normális változó, kivéve, hogy ahelyett, hogy idézőjelben perjel, például:

Az egyszerű minta megértjük ezeket a mintákat, amelyek nem igényelnek speciális szimbólumok.

Tegyük fel, hogy az a célunk, hogy cserélje ki az összes betű „p” (kis és nagy), hogy a latin nagybetű „R” a kifejezés Reguláris kifejezés.

Sablon létrehozása var reg = / p / és felhasználása az eljárás lehetőséget nyújt cserélje megfogant

Az eredmény a string „RegulyaRnye” kifejezés változás csak az első előfordulása a „p” betű tartozik az az eset. Azonban ez az eredmény nem felel meg a feltételeknek a problémát. Itt kell a módosító „g” és „i”, amely egyaránt használható külön-külön és együtt.
A módosítók kerülnek a végén a reguláris kifejezés minta, a perjel utáni, és jelentése a következő: a módosító „g” - megadja a keresett szöveget, mint egy „globális”, azaz ebben az esetben a csere fog történni minden előfordulását a „p” betű. Most a minta úgy néz ki, mint ez: var reg = / p / g. helyett azt a kódot

Kapunk a húr „RegulyaRnye vyRazheniya”.

A módosító „i” - megadja a keresett szöveget kis-és nagybetűk, hozzátéve, a módosítót a sablon var reg = / p / gi után a szkript futtatása megkapjuk a kívánt eredményt a mi problémánk - „RegulyaRnye vyRazheniya”.

Különleges karakterek (metakaraktereket)

MetaSymbols meghatározzák a kívánt típusú karakterláncok, az eljárás a string a szövegben környezet, valamint a karakterek száma egy bizonyos típusú nézet a szöveget. Ezért a meta-karakter lehet három csoportba sorolhatók:

Találat keresés metakaraktereket.
Mennyiségi meta-karaktereket.
Metakarakterek elhelyezése.
Találat keresés metakaraktereket

\ B szóhatárt meghatározza a feltételt, amelynek a sablont kell végezni elején vagy végén szó.

\ B egy szót sem határt, beállítja a feltétel, amely a sablon nem kerül végrehajtásra elején vagy végén egy szót sem.

\ D egy szám 0-tól 9.

\ S egyetlen null karakter megegyezik a szóköz.

\ S egy nem üres karakter, egyetlen karaktert kivéve helyet.

\ W betű, szám vagy aláhúzás.

\ W nem betűk, számok vagy az aláhúzás.

. minden karakter minden karakter, betűk, számok, stb

[] Karakterkészlet, amely meghatározza a feltételt, amely mellett a sablont kell végezni minden megfelelő karaktereket szögletes zárójelben.

[^] Set nem karakterek, beállítja a feltétel, amely a sablon nem kell végezni minden megfelelő karaktereket szögletes zárójelben.

mennyiségi metakaraktereket

* Nulla vagy több alkalommal.

? Nulla vagy egy időben

+ Egy és több alkalommal.

n vagy több alkalommal.

legalább, n-szer, de nem több, mint m-szer.

metakaraktereket helymeghatározás

^ Elején a sor.

Egyes módszerek, sablonok

cserélje - a módszer használtunk a cikk elején, úgy tervezték, hogy keresni és cserélni a minta illeszkedô egy új karaktersorozat.

teszt - ez a módszer azt ellenőrzi, hogy van-e egyezés a sorban tekintetében a sablont, és false értékkel tér vissza, ha a minta egyezik kudarcba fulladt, egyébként igaz.

Szintén vizsgálati módszer visszatérhet igaz vagy hamis, hanem bármely más megadott karakterláncot a programozó.
például:

ebben az esetben az eredmény a string „karakterlánc nem egyezik."

exec - ez a módszer végrehajt egy string összehasonlító mintával, egy előre meghatározott mintázat. Ha a minta egyezik kudarcba fulladt, akkor null vissza. Ellenkező esetben, az eredmény egy sor alsztringek megfelel egy adott mintát. / * Az első elem a tömb megegyezik az eredeti szöveg kielégíti az adott mintát * /
például:

Az eredmény négy sort:
Születési idő: 15/09/1980
Születésnap: 15
Születési hónap: 09
Születési év: 1980

következtetés

exec (regexp) - megállapítja az összes előfordulást (belépés a sablon „rendes”) egy sorban. Visszaadja egy tömb (a véletlen), és frissíti a regexp-egy tulajdonság, vagy null - ha semmit sem talált. A g módosítót - minden alkalommal, amikor ezt a funkciót, akkor vissza fog térni a következő találat az előző után - valósul végrehajtva az utolsó keresési index ellensúlyozni.

mérkőzés (regexp) - meg egy része a minta a sor. Ha a módosító g, akkor egyezik () függvény egy tömb összes mérkőzést vagy null (és nem egy üres tömböt). Anélkül g módosító, ez a funkció például az exec ();

teszt (regexp) - Ez a funkció ellenőrzi, hogy a karakterlánc mintaillesztést. True értékkel tér vissza - ha van egy meccs, és hamis - ha nincs egyezés.

cserélni (regexp, vegyesen) - eljárás eredménye egy olyan karakterlánc változtatni szerint a minta (regulyarrnym kifejezés). Az első paraméter regexp is tartalmazhat egy string, nem egy reguláris kifejezés. Anélkül módosító g - line módszer helyettesíti csak az első előfordulás; módosító g - globális változás, azaz a változtatnia minden eseményt, hogy a vonal. mix - a helyettesítő minta prinitat karakterlánc értékét helyett a sablon funkció (függvény neve).

Ha a második paraméter mix tartalmaz egy string, fel tudjuk használni a következő speciális karaktereket:
  • $$ - $ paszta;
  • $ - illeszkedést;
  • $ „- része egy sor előtt a illeszkedô;
  • $ „- az a része, miután a illeszkedô;
  • $ N ($ nn) - értékét az n-edik tároló konzolok (ha az első - a tárgy RegExp);

Ha a második paraméter tartalmaz egy mix funkciót, akkor indukált minden véletlen egybeesés. Az érték a csere eredményezné a funkció, azaz visszatérés „”;

Példák az ilyen funkciók:

A következő hívás visszatér helyére XXzzzz - XX. zzzz.

Mint látható, két zárójelben a reguláris kifejezés, ezért két paraméter p1, p2 függvény. Ha lenne három zárójelben a függvény kellene adnia a paramétert p3.

A következő függvény váltja borderTop írja a szavakat a border-top:

RegExp osztály

Ez az osztály kezeléséért felelős sorok keresztül regelyarnyh kifejezéseket. A kivitelező a következő alakú:

Csak egy kötelező paremetr - a „reguláris kifejezés” az idézőjelek. A „zászlók” egy további keresési feltételeket és a következők lehetnek:

  • g - adott egy globális keresési, ha ez a jelző, akkor a kifejezés visszatér minden a megfelelő szavakat.
  • i - figyelmen kívül hagyva érzéketlen
  • m - többsoros

A munka rendszeres varazheniyami három módszert a String osztály:

  • mérkőzés - keresések string reguláris kifejezések használatával átadva paraméterként, és visszaadja egy tömb a keresési eredményeket. Ha nincs semmi, akkor a visszatérési null.
  • cserélje - végez keresés és csere egy karakterlánc egy reguláris kifejezés, és visszaadja az így kapott szöveget.
  • keresés - végez poik összhangban a reguláris kifejezés átadva paraméterként, és visszaadja a helyzet az első részsztring amely illeszkedik a reguláris kifejezés.