Jquery-haku säännöllisellä lausekkeella. Säännöllisten lausekkeiden laajuus. Vaihtoehdot, ryhmittely ja linkit
SISÄÄN Tavallinen JavaScript lausekkeet esitetään RegExp-objekteilla. RegExp-objekteja voidaan luoda RegExp()-konstruktorilla, mutta useammin ne luodaan käyttämällä erityistä kirjaimellista syntaksia. Aivan kuten merkkijonoliteraalit määritetään merkeinä lainausmerkeissä, säännöllisten lausekkeiden literaalit määritetään merkeiksi, jotka on suljettu vinoviiva-pariin / .
/pattern/flags uusi RegExp("kuvio"[, hakuvaihtoehdot])
kuvio on haun säännöllinen lauseke (korvaamisesta lisää myöhemmin), ja liput ovat merkkijono, joka koostuu mistä tahansa merkkien yhdistelmästä g (yleinen haku), i (kirjainkoko ei ole tärkeä) ja m (monirivinen haku). Ensimmäistä menetelmää käytetään usein, toista - joskus. Esimerkiksi kaksi tällaista puhelua vastaavat.
HakuvaihtoehdotKun luot säännöllistä lauseketta, voimme määrittää lisävaihtoehtoja Hae
Symbolit JavaScript-säännöllisissä lausekkeissaAlfanumeeriset merkit | Vastaavat itseään |
\0 | NUL-merkki (\u0000) |
\t | Välilehti (\u0009) |
\n | Rivinsyöttö (\u000A) |
\v | Pysty välilehti (\u000B) |
\f | Sivun käännös (\u000C) |
\r | Vaunu paluu (\u000D) |
\xnn | Latinalainen merkistö heksadesimaaliluku nn; esimerkiksi \x0A on sama kuin \n |
\uxxxx | Unicode-merkki määritettynä heksadesimaaliluvulla xxxx; esimerkiksi \u0009 on sama kuin \t |
\cX | Ohjausmerkki "X", esimerkiksi sekvenssi \cJ vastaa rivinvaihtomerkkiä \n |
\ | Tavallisille hahmoille - tekee niistä erityisiä. Esimerkiksi lauseke /s/ etsii yksinkertaisesti merkkiä "s". Ja jos laitat \:n s:n eteen, niin /\s/ tarkoittaa jo välilyöntiä ja päinvastoin, jos merkki on erityinen, esimerkiksi *, \ tekee siitä vain tavallinen symboli"tähti". Esimerkiksi /a*/ etsii 0 tai useampaa peräkkäistä "a"-merkkiä. Löytääksesi a:n, jossa on tähdellä "a*", laita \ erikoismerkin eteen. symboli: /a\*/ . |
^ | Osoittaa syöttötietojen alun. Jos monirivinen hakulippu ("m") on asetettu, se laukeaa myös uuden rivin alussa. Esimerkiksi /^A/ ei löydä "A":ta "A":sta, mutta löytää ensimmäisen "A" kirjaimessa "An A." |
$ | Osoittaa syötetyn tiedon päättymisen. Jos monirivinen hakulippu on asetettu, se toimii myös rivin lopussa. Esimerkiksi /t$/ ei löydä "t" sanasta "eater", mutta löytää sen "eat". |
* | Osoittaa toiston 0 kertaa tai useammin. Esimerkiksi /bo*/ löytää "boooo" kohdasta "Aaamu booooi" ja "b" kohdasta "Lintu värähteli", mutta ei löydä mitään kohdassa "Vuohi murisi". |
+ | Osoittaa toiston yhden tai useamman kerran. Vastaa (1,). Esimerkiksi /a+/ vastaa sanaa "a" sanassa "karkki" ja kaikkea "a" sanassa "caaaaaaandy". |
? | Osoittaa, että elementti voi olla läsnä tai ei. Esimerkiksi /e?le?/ vastaa sanaa "el" sanassa "angel" ja "le" muodossa "angle", jos sitä käytetään välittömästi yhden kvantisoijien * , + ? , tai () , määrittää sitten "ei-ahneen" haun (toistamalla mahdollisimman vähän kertoja, lähimpään seuraavaan kuvion elementtiin) toisin kuin oletusarvoisessa "ahne"-tilassa, jossa toistojen määrä on maksimi, vaikka seuraava elementti malli sopii myös ? käytetään esikatselussa, joka on kuvattu taulukossa kohdissa (?=) , (?!) ja (?:) . |
. | (Desimaalipiste) edustaa mitä tahansa muuta merkkiä kuin rivinvaihtoa: \n \r \u2028 tai \u2029. (Voit käyttää [\s\S] etsiäksesi mitä tahansa merkkiä, myös rivinvaihtoa). Esimerkiksi /.n/ vastaa sanaa "an" ja "on" lausekkeessa "ei, omena on puussa", mutta ei "ei". |
(x) | Löytää x ja muistaa. Tätä kutsutaan "muistisulkeiksi". Esimerkiksi /(foo)/ löytää ja muistaa sanan "foo" kohdassa "foo bar". Löytynyt osamerkkijono tallennetaan hakutulostaulukkoon tai RegExp-objektin ennalta määritettyihin ominaisuuksiin: $1, ..., $9 Lisäksi sulut yhdistävät niiden sisältämän yhdeksi kuvioelementiksi. Esimerkiksi (abc)* - toista abc vähintään 0 kertaa. |
(?:x) | Löytää x, mutta ei muista mitä se löytää. Tätä kutsutaan "muistisuluiksi". Löytynyttä alimerkkijonoa ei tallenneta tulostaulukkoon ja RegExp-ominaisuuksiin, kuten kaikki hakasulkeet, ne yhdistävät niissä olevan yhdeksi alikuvioksi. |
x(?=y) | Löytää x:n vain, jos x:n perässä on y. Esimerkiksi /Jack(?=Sprat)/ vastaa sanaa "Jack" vain, jos sen perässä on "Sprat". /Jack(?=Sprat|Frost)/ vastaa sanaa "Jack" vain, jos sen jälkeen on "Sprat" tai "Frost". Hakutuloksissa ei kuitenkaan näy sanaa "Sprat" tai "Frost". |
x(?!y) | Löytää x:n vain, jos x:n perässä ei ole y. Esimerkiksi /\d+(?!\.)/ vastaa numeroa vain, jos sen perässä ei ole desimaalipistettä. /\d+(?!\.)/.exec("3.141") löytää 141, mutta ei 3.141. |
x|y | Löytää x tai y. Esimerkiksi /vihreä|punainen/ vastaa sanaa "vihreä" sanassa "vihreä omena" ja "punainen" sanassa "punainen omena". |
(n) | Missä n on positiivinen kokonaisluku. Löytää tarkalleen n toistoa edeltävälle elementille. Esimerkiksi /a(2)/ ei löydä "a":ta sanasta "karkki", mutta se löytää sekä a:n sanasta "caandy" ja kaksi ensimmäistä a:ta sanasta "caaandy". |
(n,) | Missä n on positiivinen kokonaisluku. Löytää n tai useampia toistoja elementistä. Esimerkiksi /a(2,) ei löydä "a" sanasta "karkki", mutta löytää kaikki "a" sanasta "caandy" ja "caaaaaaandy". |
(n,m) | Missä n ja m ovat positiivisia kokonaislukuja. Etsi elementin n-m toistoa. |
Merkistö. Löytää minkä tahansa luetelluista hahmoista. Voit merkitä välilyönnit viivalla. Esimerkiksi - sama kuin . Vastaa "b" sanalla "brisket" ja "a" ja "c" sanalla "ache". | |
[^xyz] | Mikä tahansa muu kuin sarjassa määritellyt merkit. Voit myös määrittää jänteen. Esimerkiksi [^abc] on sama kuin [^a-c] . Löytää "r":n "brisket" -sanasta ja "h":n "chop". |
[\b] | Etsii askelpalauttimen. (Ei pidä sekoittaa sanaan \b.) |
\b | Etsii (latinalaisen) sanan rajan, kuten välilyönnin. (Ei pidä sekoittaa sanaan [\b]). Esimerkiksi /\bn\w/ vastaa sanaa "no" sanassa "noonday"; /\wy\b/ löytää "ly" sanan "mahdollisesti eilen". |
\B | Se ei osoita sanan rajaa. Esimerkiksi /\w\Bn/ vastaa sanaa "on" sanalla "noonday" ja /y\B\w/ vastaa "ye" sanalla "mahdollisesti eilen". |
\cX | Missä X on kirjain A:sta Z:hen. Ilmaisee merkkijonon ohjausmerkin. Esimerkiksi /\cM/ edustaa Ctrl-M-merkkiä. |
\d | löytää numeron mistä tahansa aakkosesta (meidän on Unicode). Käytä vain tavallisten numeroiden etsimiseen. Esimerkiksi /\d/ tai // vastaa "2" kohdassa "B2 on sarjan numero". |
\D | Etsii ei-numeerisen merkin (kaikki aakkoset). [^0-9] vastaa tavallisia lukuja. Esimerkiksi /\D/ tai /[^0-9]/ vastaa "B":tä kohdassa "B2 on sarjan numero". |
\s | Etsii minkä tahansa välilyönnin, mukaan lukien välilyönnit, sarkaimet, rivinvaihdot ja muut Unicode-merkit välilyöntejä. Esimerkiksi /\s\w*/ vastaa sanaa "bar" kohdassa "foo bar". |
\S | Löytää minkä tahansa merkin paitsi välilyönnin. Esimerkiksi /\S\w*/ vastaa sanaa "foo" kohdassa "foo bar". |
\v | Pystysuora sarkainmerkki. |
\w | Löytää minkä tahansa sanan (latinalaiset aakkoset), mukaan lukien kirjaimet, numerot ja alaviivat. Vastaava. Esimerkiksi /\w/ vastaa sanaa "a" sanassa "omena", "5" muodossa "5,28 $" ja "3" muodossa "3D". |
\W | Löytää minkä tahansa ei-latinalaisen sanamerkin. Vastaa [^A-Za-z0-9_] . Esimerkiksi /\W/ ja /[^$A-Za-z0-9_]/ vastaavat yhtä hyvin "%" arvossa "50%. |
Työskentely säännöllisten lausekkeiden kanssa Javascriptissä on toteutettu String-luokan menetelmillä
exec(regexp) - etsii kaikki osumat (säännöllisen mallin merkinnät) merkkijonosta. Palauttaa taulukon (jos vastaavuus löytyy) ja päivittää regexp-ominaisuuden tai nollan, jos mitään ei löydy. g-muuntimella - joka kerta kun tätä funktiota kutsutaan, se palauttaa seuraavan osuman edellisen löydetyn jälkeen - tämä toteutetaan ylläpitämällä viimeisimmän haun offset-indeksiä.
match(regexp) - etsi osa merkkijonosta kuvion avulla. Jos g-muuttaja on määritetty, match() palauttaa taulukon kaikista osuvista tai nollan (ei tyhjä joukko). Ilman g-muuttajaa tämä funktio toimii kuten exec();
test(regexp) - funktio tarkistaa, että merkkijono vastaa kuviota. Palauttaa tosi, jos vastaavuutta löytyy, ja epätosi, jos vastaavuutta ei löydy.
split(regexp) - Jakaa sitä kutsutun merkkijonon alimerkkijonojonoksi käyttämällä argumenttia erottimena.
korvaa(regexp, mix) - menetelmä palauttaa muokatun merkkijonon mallin mukaisesti (säännöllinen lauseke). Ensimmäinen regexp-parametri voi olla myös merkkijono säännöllisen lausekkeen sijaan. Ilman g-muuttajaa rivillä oleva menetelmä korvaa vain ensimmäisen esiintymän; muuntimella g - tapahtuu globaali korvaaminen, ts. kaikki esiintymät tietyllä rivillä muuttuvat. mix - korvaava malli, voi hyväksyä merkkijonon, korvaavan mallin, funktion (funktion nimen) arvot.
Erikoismerkit korvaavassa merkkijonossaKorvaaminen funktiollaJos määrität funktion toiseksi parametriksi, se suoritetaan jokaisessa ottelussa. Funktio voi dynaamisesti luoda ja palauttaa korvausmerkkijonon. Funktion ensimmäinen parametri on löydetty osamerkkijono. Jos ensimmäinen korvattava argumentti on RegExp-objekti, seuraavat n parametria sisältävät sisäkkäisiä sulkujen osumia. Kaksi viimeistä parametria ovat sijainti rivillä, jossa osuma tapahtui, ja itse rivi.
Tämä artikkeli kattaa perusasiat säännöllisten lausekkeiden käytöstä Javascriptissä.
Johdanto Mikä on säännöllinen lauseke?Säännöllinen JS-lauseke on merkkijono, joka muodostaa hakusäännön. Tämän säännön avulla voidaan sitten etsiä tekstiä sekä korvata se. Käytännössä säännöllinen lauseke voi koostua jopa yhdestä merkistä, mutta monimutkaisemmat hakumallit ovat yleisempiä.
Javascriptissä säännöllisiä lausekkeita ovat myös esineitä. Näitä malleja käytetään vastaamaan merkkijonojen merkkijonoja. Niitä käytetään RegExp-objektin exec()- ja test()-menetelmissä sekä String-objektin match(), replace(), search- ja split()-menetelmissä.
Esimerkki
var kuvio = /esimerkki/i
/esimerkki/i on säännöllinen lauseke. esimerkki on malli (jota käytetään haussa). i on muokkaus, joka ilmaisee kirjainkoon herkkyyden.
Säännöllisen lausekkeen valmisteluSäännölliset JS-lausekkeet koostuvat kuviosta ja muokkaajasta. Syntaksi tulee olemaan jotain tällaista:
/pattern/modifiers;
Malli määrittää hakusäännön. Se koostuu yksinkertaisista merkeistä, kuten /abc/ tai yksinkertaisten ja erikoismerkkien yhdistelmästä: /abc/ tai /Chapter (d+).d/ .
MallitaulukkoMuokkainten avulla voit tehdä kyselyistä kirjainkoon erottelun, globaaleja ja niin edelleen. Niitä käytetään sekä kirjainkoon erotteluun että maailmanlaajuisiin hakuihin.
MuokkaustaulukkoNyt olemme valmiita käyttämään JS-säännöllisiä lausekkeita. On kaksi päätapaa tehdä tämä: käyttämällä säännöllistä lauseketta tai säännöllistä lauseketta merkkijonossa.
Säännöllisen lausekkeen objektin käyttäminen Säännöllisen lausekkeen objektin luominenTämä objekti kuvaa merkkikuviota. Sitä käytetään kuvioiden sovittamiseen. On kaksi tapaa rakentaa säännöllinen lausekeobjekti.
Tapa 1: Käytä säännöllistä lauseketta, joka koostuu vinoviivalla suljetusta kuviosta, esimerkiksi:
var reg = /ab+c/;
Säännöllisen lausekkeen literaalit käynnistävät säännöllisen lausekkeen esikäännöksen, kun komentosarja jäsennetään. Jos säännöllinen lauseke on vakio, käytä sitä suorituskyvyn parantamiseen.
Tapa 2: RegExp-objektin konstruktorifunktion kutsuminen, esimerkiksi:
var reg = uusi RegExp("ab+c");
Konstruktorin avulla säännöllinen JS-lauseke voidaan kääntää komentosarjan ollessa käynnissä. Käyttää tätä menetelmää, jos säännöllinen lauseke muuttuu tai et tiedä kuviota etukäteen. Esimerkiksi, jos saat tietoja käyttäjältä, joka kirjoittaa hakukyselyn.
Säännöllisen lausekkeen objektimenetelmätKatsotaanpa muutamia yleisiä säännöllisen lausekkeen objektimenetelmiä:
- compile() (poistettu käytöstä versiossa 1.5) – kääntää säännöllisen lausekkeen;
- exec() - Suorittaa merkkijonovastaavuuden. Palauttaa ensimmäisen ottelun;
- test() - suorittaa osuman merkkijonolle. Palauttaa totta tai väärä;
- toString() – palauttaa säännöllisen lausekkeen merkkijonoarvon.
Test()-menetelmä on RegExp-objektin säännöllinen lauseke. Se etsii kuviomerkkijonoa ja palauttaa tosi tai epätosi tuloksesta riippuen. Seuraava JS-säännöllinen lausekeesimerkki näyttää, kuinka merkkijonosta haetaan merkkiä "e":
var patt = /e/; patt.test("Maailman parhaat asiat ovat ilmaisia!");
Koska tässä merkkijonossa on "e", tämän koodin tulos on tosi.
Säännöllisiä lausekkeita ei tarvitse sijoittaa muuttujaan. Sama kysely voidaan tehdä yhdellä rivillä:
/e/.test("Maailman parhaat asiat ovat ilmaisia!");
Käytä exec()Se etsii merkkijonoa annettu sääntö haku ja palauttaa löydetyn tekstin. Jos osumia ei löydy, tulos on nolla .
Katsotaanpa menetelmää toiminnassa käyttäen samaa symbolia "e" esimerkkinä:
/e/.exec("Maailman parhaat asiat ovat ilmaisia!");
Koska merkkijonossa on "e", tämän koodin tulos on .e .
Säännöllisen lausekkeen käyttäminen merkkijonoonJavascriptissä näitä lausekkeita voidaan käyttää myös kahdella String-objektin menetelmällä: search() ja korvaa(). Niitä tarvitaan haun ja korvaamisen suorittamiseen tekstissä.
- search()-metodi - käyttää lauseketta etsimään osuman ja palauttaa tiedot osuman sijainnista;
- Replace()-menetelmä palauttaa muokatun merkkijonon korvatulla kuviolla.
Säännöllisen JS-lausekkeen käyttäminen merkkijonon lauseen "w3schools" etsimiseen kirjainkoolla:
var str = "Käy W3Schoolsissa"; var n = str.search(/w3schools/i);
Tulos n:ssä on 6.
Hakumenetelmä käyttää myös merkkijonoa argumenttina. Merkkijonoargumentti muunnetaan säännölliseksi lausekkeeksi:
Merkkijonon käyttäminen lauseen "W3schools" etsimiseen merkkijonosta:
var str = "Käy W3Schoolsissa!"; var n = str.search("W3Schools");
Käytä säännöllistä JS-lauseketta, jossa kirjainkoolla on merkitystä korvaamaan "Microsoft" sanalla "W3Schools" merkkijonossa:
var str = "Käy Microsoftissa!"; var res = str.replace(/microsoft/i, "W3Schools");
Tuloksena saamme: "Käy W3Schoolsissa! ".
Replace()-metodi hyväksyy myös hakumerkkijonon:
var str = "Käy Microsoftissa!"; var res = str.replace("Microsoft", "W3Schools");
Artikkelin "Säännöllisen lausekkeen käyttö Javascriptissä" käännöksen on valmistellut ystävällinen projektitiimi
Säännöllisten lausekkeiden syntaksi on melko monimutkainen ja vaatii vakavaa vaivaa oppiakseen. Paras ohje säännöllisillä lausekkeilla on nykyään J. Friedlin kirja "Säännölliset lausekkeet", jonka avulla kirjoittajan mukaan "opetetaan ajattelemaan säännöllisillä lausekkeilla".
PeruskonseptitSäännöllinen lauseke on keino käsitellä merkkijonoja tai merkkijonoja, jotka määrittelevät tekstikuvion.
Muokkaus - on tarkoitettu "opastamaan" säännöllistä lauseketta.
Metahahmot - Erikoissymbolit, jotka toimivat säännöllisten lausekkeiden kielen komentoina.
Säännöllinen lauseke asetetaan säännölliseksi muuttujaksi, vain vinoviivaa käytetään lainausmerkkien sijaan, esimerkiksi: var reg=/reg_expression/
Yksinkertaisimmilla malleilla tarkoitamme niitä malleja, jotka eivät vaadi erikoismerkkejä.
Oletetaan, että tehtävämme on korvata kaikki kirjaimet "r" (pienet ja isot) latinalaisilla iso kirjain"R" lauseessa Säännölliset lausekkeet.
Luo malli var reg=/р/ ja käyttämällä menetelmää korvata toteutamme suunnitelmamme
var reg=/р/
document.write(tulos)
Seurauksena on, että saamme rivin - Säännölliset lausekkeet, korvaus tapahtui vain kirjaimen "r" ensimmäisellä esiintymisellä tapaus huomioon ottaen.
Mutta tämä tulos ei sovi tehtävämme ehtoihin... Tässä tarvitaan muunnelmia "g" ja "i", joita voidaan käyttää sekä erikseen että yhdessä. Nämä määritteet sijoitetaan säännöllisen lausekkeen kuvion loppuun vinoviivan jälkeen, ja niillä on seuraavat merkitykset:
modifier "g" - asettaa rivin haun "globaaliksi", ts. meidän tapauksessamme korvataan kaikki kirjaimen "p" esiintymät. Nyt malli näyttää tältä: var reg=/р/g , korvaa sen koodissamme
var str="Säännölliset lausekkeet"
var reg=/р/g
var tulos=str.replace(reg, "R")
document.write(tulos)
saamme merkkijonon - Säännölliset lausekkeet.
modifier "i" - asettaa merkkijonoon haun, jossa kirjainkoolla ei ole merkitystä. Kun lisäät tämän muokkaimen malliimme var reg=/р/gi, skriptin suorittamisen jälkeen saamme tehtävämme halutun tuloksen - säännölliset lausekkeet.
Metamerkit määrittävät haetun merkkijonon merkkien tyypin, tavan, jolla etsitty merkkijono on ympäröity tekstissä, sekä tietyn tyyppisten merkkien lukumäärän katseltavassa tekstissä. Siksi metahahmot voidaan jakaa kolmeen ryhmään:
- Metahahmot osumien etsimiseen.
- Kvantitatiiviset metahahmot.
- Metahahmojen sijoittaminen.
Merkitys | Kuvaus | ||
sanan raja | määrittää ehdon, jossa malli tulee suorittaa sanan alussa tai lopussa | /\ber/ vastaa virhe, ei sovi yhteen sankari tai kanssa pelaaja |
|
ei sanarajaa | määrittää ehdon, jossa mallia ei suoriteta sanan alussa tai lopussa | /\Ber/ vastaa sankari tai kanssa pelaaja, ei sovi yhteen virhe |
|
numero 0-9 | /\d\d\d\d/ vastaa mitä tahansa nelinumeroista lukua |
||
/\D\D\D\D/ ei täsmää 2005 tai 05.g tai №126 jne. |
|||
yksi tyhjä merkki | vastaa välilyöntimerkkiä | \over\sbyte\ vastaa vain yli tavun |
|
yksittäinen ei-tyhjä merkki | mikä tahansa yksittäinen merkki välilyöntiä lukuun ottamatta | \over\Sbyte\ vastaa yli-tavu tai kanssa over_byte, ei sovi yhteen yli tavun tai ylitavu |
|
kirjain, numero tai alaviiva | /A\w/ vastaa A1 tai kanssa AB, ei sovi yhteen A+ |
||
ei kirjainta, numeroa tai alaviivaa | /A\W/ ei täsmää A1 tai kanssa AB, osuu yhteen A+ |
||
mikä tahansa hahmo | kaikki merkit, kirjaimet, numerot jne. | /.../ vastaa mitä tahansa kolmea merkkiä ABC tai !@4 tai 1 q |
|
Merkistö | määrittää ehdon, jossa kuvio on suoritettava kaikille hakasulkeisiin merkityille merkeille | /WERTY/ osumia QWERTY, Kanssa AWERTY |
|
joukko ei sisälly merkkejä | määrittää ehdon, jossa kuviota ei tule suorittaa millekään hakasulkeisiin merkityille merkeille | /[^QA]WERTY/ ei täsmää QWERTY, Kanssa AWERTY |
Taulukossa "Match Search Metacharacters" annettuja merkkejä ei pidä sekoittaa merkkijonoissa käytettyyn estomerkkijonoon, kuten \\t - tab, \\n - escape uusi rivi jne.
Kvantitatiiviset metahahmotSattumien määrä | ||
Nolla ja Suuri määrä kerran | /Ja*vaScript/ vastaa JavaScript tai kanssa JavaScript tai kanssa JavaScript, ei sovi yhteen JovaScript |
|
Nolla tai kerta | Vain /Ja?vaScript/ osumia JavaScript tai kanssa JavaScript |
|
Yhden tai useamman kerran | /Ja+vaScript/ vastaa JavaScript tai kanssa JavaScript tai kanssa JavaScript, ei sovi yhteen JavaScript |
|
tasan n kertaa | Vain /Ja(2)vaScript/ vastaa JavaScript |
|
n tai useammin | /Ja(2,)vaScript/ vastaa JavaScript tai kanssa JavaScript, ei sovi yhteen JavaScript tai kanssa JavaScript |
|
Tekijä: vähintään, n kertaa, mutta enintään m kertaa | Vain /Ja(2,3)vaScript/ vastaa JavaScript tai kanssa JavaScript |
Jokainen Quantitative Metacharacters -taulukossa lueteltu merkki koskee yhtä edeltävää merkkiä tai metamerkkiä säännöllisessä lausekkeessa.
Metahahmojen sijoittaminenViimeinen metamerkkijoukko on tarkoitettu osoittamaan, etsitäänkö (jos tärkeää) osamerkkijono rivin alusta vai lopusta.
Joitakin tapoja työskennellä mallien kanssavaihda - tätä menetelmää käytimme sitä jo artikkelin alussa, se on suunniteltu etsimään kuviota ja korvaamaan löydetty osamerkkijono uudella alimerkkijonolla.
exec - tämä menetelmä suorittaa merkkijonon vastaavuuden mallin määrittämää mallia vastaan. Jos kuvioiden sovitus epäonnistuu, se palaa nolla-arvo. Muussa tapauksessa tuloksena on joukko alimerkkijonoja, jotka vastaavat annettua mallia. /*Matriisin ensimmäinen elementti on yhtä suuri kuin alkuperäinen rivi joka täyttää tietyn mallin*/
Esimerkiksi:
var reg=/(\d+).(\d+).(\d+)/
var arr=reg.exec("Olen syntynyt 15. syyskuuta 1980")
document.write("Syntymäaika: ", arr, "< br>")
document.write("Syntymäpäivä: ", arr, "< br>")
document.write("Syntymäkuukausi: ", arr, "< br>")
document.write("Syntymävuosi: ", arr, "< br>")
Tuloksena saamme neljä riviä:
Syntymäaika: 15.09.1980
Syntymäpäivä: 15
Syntymäkuukausi: 09
Syntymävuosi: 1980
Artikkeli ei näytä kaikkia säännöllisten lausekkeiden ominaisuuksia ja nautintoja, jotta voit tutkia tätä asiaa tarkemmin, suosittelen sinua tutkimaan RegExp-objektia. Haluan myös kiinnittää huomiosi siihen, että säännöllisten lausekkeiden syntaksi ei eroa JavaScriptissä ja PHP:ssä. Jos esimerkiksi haluat tarkistaa, onko sähköposti kirjoitettu oikein, JavaScriptin ja PHP:n säännöllinen lauseke näyttää samalta /+@+.(2,3)/i .