Lucrând cu succes cu expresii regulate, trebuie să știți ce face fiecare caracter, pavilion și metodă specială. Aceasta este o foaie de înșelăciune cu expresii regulate la care vă puteți referi când încercați să vă amintiți cum funcționează o metodă, un caracter special sau un steag.
Există două moduri de a defini o expresie regulată în JavaScript.
var rgx = / ^ (\ d +) /
- Puteți utiliza o expresie obișnuită literală și inserați modelul între tăieturi. Acest lucru este evaluat la timpul de compilare și oferă o performanță mai bună dacă expresia regulată rămâne constantă.var rgx = nou RegExp ('^ (\ d +)')
- Funcția constructor este utilă atunci când expresia regulată se poate schimba programabil. Acestea sunt compilate în timpul rulării.Următoarele secvențe pot fi utilizate pentru a se potrivi cu un anumit set de caractere.
\ w
- Se potrivește cu toate cuvintele caractere. Caracterele Word sunt alfanumerice (a-z, caractere A-Z și subliniere).\ W
- Se potrivește cu caractere non-cuvânt. Totul, cu excepția caracterelor alfanumerice și a sublinierii.\ d
- Se potrivește cu caracterele digitale. Orice cifră de la 0 la 9.\ D
- Se potrivește cu caractere non-cifre. Totul cu excepția celor de la 0 la 9.\ s
- Se potrivește cu caracterele spațiului alb. Acestea includ spații, file și pauze de linie.\ S
- Se potrivește cu toate celelalte personaje, cu excepția spațiilor libere..
- Se potrivește cu orice caracter, cu excepția pauzelor de linie.[A-Z]
- Se potrivește caractere într-un interval. De exemplu, [A-E]
se va potrivi cu A, B, C, D și E.[ABC]
- Se potrivește cu un caracter din setul dat. De exemplu, [AMT]
se va potrivi numai cu A, M și T.[^ ABC]
- Se potrivește cu toate personajele nu prezent în setul dat. De exemplu, [^ A-E]
se vor potrivi cu toate celelalte caractere, cu excepția A, B, C, D și E.Toate expresiile de mai sus se vor potrivi cu un singur caracter la un moment dat. Puteți adăuga cuantificatori pentru a specifica câte caractere ar trebui să fie incluse simultan în meci.
+
- Se potrivește cu una sau mai multe apariții ale jetonului precedent. De exemplu, \ w+
va reveni ABD12D ca un singur meci în loc de șase meciuri diferite.*
- Se potrivește cu zero sau mai multe apariții ale tokenului precedent. De exemplu, b \ w *
se potrivește cu părțile aldine din b, băţ, bajhdsfbfjhbe. Practic, se potrivește cu zero sau mai multe caractere după cuvântul "b".m, n
- Se potrivește cel puțin m și cel mult n apariții ale tokenului anterior. M,
se va potrivi cel puțin m întâmplări și nu există nici o limită superioară la meci. K
se va potrivi exact k aparițiile jetonului precedent.?
- Se potrivește cu zero sau cu o singură apariție a caracterului precedent. De exemplu, acest lucru poate fi util atunci când se potrivesc două variante de ortografie pentru aceeași lucrare. De exemplu, /comportament/
se va potrivi cu ambele comportament și comportament.|
- Se potrivește cu expresia fie înainte, fie după caracterul țevii. De exemplu, / Se (a | e) /
se potrivește atât cu vedere cât și cu mare.(ABC)
- Astfel se vor grupa mai multe jetoane împreună și se va reține că substringul se potrivește cu acestea pentru utilizare ulterioară. Acest lucru se numește un grup de capturare.(:? ABC)
- Aceasta va grupa, de asemenea, mai multe jetoane împreună, dar nu își va aminti meciul. Este un grup care nu captează.\ D + (= ABC)
- Acest lucru se va potrivi cu jetoanele precedente (= ABC)
parte numai dacă este urmată de ABC
. Partea ABC
nu vor fi incluse în meci. \ d
partea este doar un exemplu. Ar putea fi orice alt șir de expresii regulate.\ D + (ABC ?!)
- Acest lucru se va potrivi cu jetoanele precedente (?! ABC)
doar dacă este nu urmat de ABC
. Partea ABC
nu vor fi incluse în meci. \ d
partea este doar un exemplu. Ar putea fi orice alt șir de expresii regulate.Există și alte caractere de expresie regulată care nu au fost acoperite în secțiunile anterioare:
^
- Căutați expresia obișnuită la începutul șirului sau la începutul unei linii dacă este activat stegulețul multiline.$
- Căutați expresia regulată la sfârșitul șirului sau la sfârșitul unei linii dacă este activat stegulețul multiline.\ b
- Se potrivește cu tokenul precedent numai dacă există o limită de cuvânt.\ B
- Se potrivește cu jetonul precedent numai dacă nu există limită de cuvânt.Steagurile pot fi folosite pentru a controla modul în care o expresie regulată ar trebui interpretată. Puteți utiliza steaguri, singure sau împreună, în orice ordine doriți. Acestea sunt cele cinci steaguri disponibile în JavaScript.
g
- Căutați șirul pentru toate potrivirile unei expresii date, în loc să reveniți doar la primul.eu
- Faceți căutarea insensibilă a cuvintelor cheie, astfel încât cuvintele precum Apple, aPPLe și Apple să poată fi potrivite simultan.m
- Acest steag va asigura că ^
și $
jetoanele caută un meci la începutul sau la sfârșitul fiecărei linii în loc de întregul șir.u
- Acest steguleț vă va permite să utilizați scripturi de puncte Unicode în expresia dvs. regulată.y
- Acest lucru va indica ca JavaScript să caute doar o potrivire la poziția curentă din șirul țintă.Puteți specifica steaguri pentru o expresie regulată în JavaScript fie prin adăugarea lor la sfârșitul unei expresii regulate literale, fie prin transmiterea acestora către RegExp
constructor. De exemplu, / Pisica / i
se potrivește cu toate aparițiile pisică indiferent de caz, și RegExp ("cat", "i")
face același lucru.
Expresiile obișnuite pe care le creați utilizând steagurile și secvențele de caractere pe care le-am discutat până acum sunt menite să fie utilizate cu metode diferite pentru a căuta, înlocui sau împărți un șir. Iată câteva metode legate de expresiile regulate.
Test()
- Verificați dacă șirul principal conține o subdreaptă care se potrivește cu modelul specificat de expresia regulată dată. Se întoarce Adevărat
pe meciul de succes și fals
in caz contrar.var textA = 'Îmi place foarte mult Apple'; var textB = 'Îmi place APPles'; var regexOne = / mere $ / i // Ieșire: false console.log (regexOne.test (textA)); // Ieșire: true console.log (regexOne.test (textB));
În exemplul de mai sus, expresia regulată ar trebui să caute cuvântul mere numai la sfârșitul șirului. De asta am ajuns fals
în primul caz.
căutare()
- Verificați dacă șirul principal conține o subdreaptă care se potrivește cu modelul specificat de expresia regulată dată. Returnează indexul meciului la succes și -1 in caz contrar.var textA = 'Îmi place foarte mult Apple'; var regexOne = / mere /; var regexTwo = / mere / i; // Ieșire: -1 console.log (textA.search (regexOne)); // Ieșire: 7 console.log (textA.search (regexTwo));
În acest caz, a revenit prima expresie regulată -1 deoarece nu a existat o potrivire exactă a literelor mici.
Meci()
- Căutați dacă șirul principal conține o subdistru care se potrivește cu modelul specificat de expresia regulată dată. În cazul în care g
este activat flagul, mai multe potriviri vor fi returnate ca un tablou.var textA = 'Tot ce văd aici sunt mere, mere și mere "; var regexOne = / mere / gi; // Output: ["mere", "APPles", "apPleS"] console.log (textA.match (regexOne));
exec ()
- Căutați dacă șirul principal conține o subdistru care se potrivește cu modelul specificat de expresia regulată dată. Matricea returnată va conține informații despre grupurile de potrivire și de captare.var textA = 'Îți plac merele?'; var regexOne = / mere /; // Output: apple console.log (regexOne.exec (textA) [0]); // Ieșire: Îți plac merele? console.log (regexOne.exec (textA) .input);
a inlocui()
- Căutați o subdreaptă care se potrivește cu modelul dat și o înlocuiți cu șirul de înlocuire furnizat.var textA = 'Îți plac aPPles?'; var regexOne = / mere / i // Ieșire: Îți plac mango-urile? console.log (textA.replace (regexOne, "mangoes"));
Despică()
- Această metodă vă va permite să împărțiți șirul principal în subrețele bazate pe separatorul specificat ca expresie regulată.var textA = 'Acest șir de coduri 593 va fi accesat în locurile în care există d1gits.'; var regexOne = / \ d + / g // Output: ["This", "șirul va fi brok", "en în locurile unde d", "gits are". ] console.log (textA.split (regexOne))
În tutorialele anterioare, am acoperit elementele de bază ale expresiilor regulate, precum și unele expresii mai complicate care se pot dovedi utile din când în când. Aceste două tutoriale explică modul în care diferite caractere sau secvențe de caractere funcționează în expresii regulate.
În cazul în care expresiile regulate încă vă confundă, sfatul meu ar fi să continuăm să practicăm și să vedem cum vin alte persoane cu expresii regulate pentru a face un model particular.