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.

Hakuvaihtoehdot

Kun luot säännöllistä lauseketta, voimme määrittää lisävaihtoehtoja Hae

Symbolit JavaScript-säännöllisissä lausekkeissa Symbolien kirjeenvaihto
Alfanumeeriset merkitVastaavat itseään
\0 NUL-merkki (\u0000)
\tVälilehti (\u0009)
\nRivinsyöttö (\u000A)
\vPysty välilehti (\u000B)
\fSivun käännös (\u000C)
\rVaunu paluu (\u000D)
\xnnLatinalainen merkistö heksadesimaaliluku nn; esimerkiksi \x0A on sama kuin \n
\uxxxxUnicode-merkki määritettynä heksadesimaaliluvulla xxxx; esimerkiksi \u0009 on sama kuin \t
\cXOhjausmerkki "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|yLö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.)
\bEtsii (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".
\BSe ei osoita sanan rajaa. Esimerkiksi /\w\Bn/ vastaa sanaa "on" sanalla "noonday" ja /y\B\w/ vastaa "ye" sanalla "mahdollisesti eilen".
\cXMissä X on kirjain A:sta Z:hen. Ilmaisee merkkijonon ohjausmerkin. Esimerkiksi /\cM/ edustaa Ctrl-M-merkkiä.
\dlö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".
\DEtsii ei-numeerisen merkin (kaikki aakkoset). [^0-9] vastaa tavallisia lukuja. Esimerkiksi /\D/ tai /[^0-9]/ vastaa "B":tä kohdassa "B2 on sarjan numero".
\sEtsii 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".
\SLöytää minkä tahansa merkin paitsi välilyönnin. Esimerkiksi /\S\w*/ vastaa sanaa "foo" kohdassa "foo bar".
\vPystysuora sarkainmerkki.
\wLö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".
\WLö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ä

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 funktiolla

Jos 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 valmistelu

Sää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/ .

Mallitaulukko

Muokkainten avulla voit tehdä kyselyistä kirjainkoon erottelun, globaaleja ja niin edelleen. Niitä käytetään sekä kirjainkoon erotteluun että maailmanlaajuisiin hakuihin.

Muokkaustaulukko


Nyt 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 luominen

Tä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ät

Katsotaanpa 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.
Esimerkkejä test()

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 merkkijonoon

Javascriptissä 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.
Esimerkkejä

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".

Peruskonseptit

Sää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.

Erikoismerkit (metamerkit)

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.
Metamerkit yhteensovittamista varten

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
/er/ vastaa pelaaja, ei sovi yhteen sankari tai kanssa virhe
/\ber\b/ ei täsmää sankari tai kanssa pelaaja tai kanssa virhe, voi vain yhtyä er

ei sanarajaa

määrittää ehdon, jossa mallia ei suoriteta sanan alussa tai lopussa

/\Ber/ vastaa sankari tai kanssa pelaaja, ei sovi yhteen virhe
/er\B/ vastaa virhe tai kanssa pelaaja, ei sovi yhteen sankari
/\Ber\B/ vastaa sankari, ei sovi yhteen pelaaja tai kanssa 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 metahahmot

Sattumien 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 sijoittaminen

Viimeinen metamerkkijoukko on tarkoitettu osoittamaan, etsitäänkö (jos tärkeää) osamerkkijono rivin alusta vai lopusta.

Joitakin tapoja työskennellä mallien kanssa

vaihda - 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

Johtopäätös

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 .