JavaScript Regex Cheat Sheet

Vellykket arbeid med regelmessige uttrykk krever at du vet hva hver spesialtegn, flagg og metode gjør. Dette er et regelmessig uttrykkssvindelark som du kan henvise til når du prøver å huske hvordan en metode, spesialkarakter eller flagg fungerer.

Definere en vanlig uttrykk i JavaScript

Det er to måter å definere et vanlig uttrykk i JavaScript.

  • var rgx = / ^ (\ d +) / - Du kan bruke et vanlig uttrykk bokstavelig og legge inn mønsteret mellom skråstreker. Dette vurderes på kompileringstid og gir bedre ytelse hvis det vanlige uttrykket forblir konstant.
  • var rgx = nytt RegExp ('^ (\ d +)') - Konstruktørfunksjonen er nyttig når det vanlige uttrykket kan endres programmatisk. Disse er kompilert i løpet av kjøretiden.

Matcher et bestemt sett med tegn

Følgende sekvenser kan brukes til å matche et bestemt sett med tegn.

  • \ w - Passer alle ordene tegn. Ordkarakterer er alfanumeriske (a-z, A-Z tegn og understrek).
  • \ W - Passer ikke-ord tegn. Alt unntatt alfanumeriske tegn og understrek.
  • \ d - Matcher siffertegn. Et hvilket som helst tall fra 0 til 9.
  • \ D - Passer ikke-sifferte tegn. Alt unntatt 0 til 9.
  • \ s - Matcher hvite mellomrom. Dette inkluderer mellomrom, faner og linjeskift.
  • \ S - Passer alle andre tegn bortsett fra hvitt plass.
  • . - Passer alle tegn unntatt linjeskift.
  • [A-Z] - Matcher tegn i et område. For eksempel, [A-E] vil matche A, B, C, D og E.
  • [ABC] - Matcher et tegn i det angitte settet. For eksempel, [AMT] vil bare matche A, M og T.
  • [^ ABC] - Passer alle tegnene ikke tilstede i det angitte settet. For eksempel, [^ A-E] vil matche alle andre tegn unntatt A, B, C, D og E.

Angir antall tegn som skal matches

Alle uttrykkene ovenfor samsvarer med et enkelt tegn om gangen. Du kan legge til kvantifikatorer for å angi hvor mange tegn som skal inkluderes i kampen samtidig.

  • + - Matcher en eller flere forekomster av foregående token. For eksempel, \ w+ vil returnere ABD12D som en enkelt kamp i stedet for seks forskjellige kamper.
  • * - Matcher null eller flere forekomster av foregående token. For eksempel, b \ w * matcher de dristige delene i b, flaggermus, bajhdsfbfjhbe. I utgangspunktet samsvarer det med null eller flere ordkarakterer etter 'b'.
  • m, n - Matcher minst m og høyst n forekomster av forrige token. M, vil matche minst m forekomster, og det er ingen øvre grense for kampen. K vil matche nøyaktig k forekomster av foregående token.
  • ? - Matcher null eller en forekomst av foregående tegn. For eksempel kan dette være nyttig når du kombinerer to variasjoner av stavemåte for det samme arbeidet. For eksempel, /oppførsel/ vil matche begge deler oppførsel og oppførsel.
  • | - Samsvarer uttrykket enten før eller etter rørkarakteren. For eksempel, / Se (a | e) / matcher både se og sjø.

Parenthesis-Related Regular Expressions

  • (ABC) - Dette vil gruppere flere tokens sammen og husk substringen som de passer til senere bruk. Dette kalles en fangstgruppe.
  • (:? ABC) - Dette vil også gruppere flere tokens sammen, men husker ikke kampen. Det er en ikke-fangstgruppe.
  • \ D + (? = ABC) - Dette vil samsvare med token (e) som ligger foran (? = ABC) del kun hvis den følges av ABC. Den delen ABC vil ikke bli inkludert i kampen. De \ d del er bare et eksempel. Det kan være noen annen vanlig uttrykksstreng.
  • \ D + (?! ABC) - Dette vil samsvare med token (e) som ligger foran (ABC?!) kun del hvis den er ikke etterfulgt av ABC. Den delen ABC vil ikke bli inkludert i kampen. De \ d del er bare et eksempel. Det kan være noen annen vanlig uttrykksstreng.

Andre ordinære uttrykkstegn

Det er også noen andre vanlige uttrykkskarakterer som ikke er dekket i tidligere seksjoner:

  • ^ - Se etter det vanlige uttrykket i begynnelsen av strengen eller begynnelsen på en linje hvis det multiline flagget er aktivert.
  • $ - Se etter det vanlige uttrykket på slutten av strengen eller enden av en linje hvis det multiline flagget er aktivert.
  • \ b - Match bare det forrige token hvis det er et ordgrense.
  • \ B - Match kun den forrige token hvis det ikke er noen ordgrense.

Bruke flagg med regelmessige uttrykk

Flagg kan brukes til å kontrollere hvordan et regulært uttrykk skal tolkes. Du kan bruke flagg enten alene eller sammen i hvilken som helst rekkefølge du ønsker. Dette er de fem flaggene som er tilgjengelige i JavaScript. 

  • g - Søk strengen for alle kamper av gitt uttrykk i stedet for å returnere bare den første.
  • Jeg - Gjør søket uaktsom, slik at ord som Apple, aPPLe og Apple kan alle sammenliknes samtidig.
  • m - Dette flagget vil sørge for at ^ og $ tokens ser etter en kamp i begynnelsen eller slutten av hver linje i stedet for hele strengen.
  • u - Dette flagget gjør at du kan bruke Unicode-kodepunktfluer i ditt vanlige uttrykk.
  • y - Dette vil fortelle JavaScript for bare å se etter en kamp i gjeldende posisjon i målstrengen.

Du kan angi flagg for et vanlig uttrykk i JavaScript, enten ved å legge dem til slutten av et ordinært uttrykk bokstavelig eller ved å sende dem til RegExp konstruktør. For eksempel, / Katt / i matcher alle forekomster av katt uansett tilfelle, og RegExp ("katt", "jeg") gjør det samme.

Nyttige regelmessige uttrykksmetoder i JavaScript

De vanlige uttrykkene du lager ved hjelp av flaggene og tegnesekvensene vi har diskutert hittil, er ment å bli brukt med forskjellige metoder for å søke, erstatte eller dele en streng. Her er noen metoder knyttet til regulære uttrykk.

  • test() - Sjekk om hovedstrengen inneholder en substring som samsvarer med mønsteret angitt av det gjeldende regulære uttrykket. Det kommer tilbake ekte på vellykket kamp og falsk ellers.
var textA = 'Jeg liker epler veldig mye'; var textB = 'Jeg liker APPles'; var regexOne = / epler $ / i // Output: false console.log (regexOne.test (textA)); // Output: true console.log (regexOne.test (textB)); 

I eksemplet ovenfor skal det regulære uttrykket søke etter ordet epler bare på slutten av strengen. Det er derfor vi fikk falsk i det første tilfellet.

  • Søke() - Sjekk om hovedstrengen inneholder en substring som samsvarer med mønsteret angitt av det gjeldende regulære uttrykket. Den returnerer indeksen av kampen på suksess og -1 ellers.
var textA = 'Jeg liker epler veldig mye'; var regexOne = / epler /; var regexTwo = / epler / jeg; // Output: -1 console.log (textA.search (regexOne)); // Output: 7 console.log (textA.search (regexTwo));

I dette tilfellet returnerte det første vanlige uttrykket -1 fordi det ikke var noen nøyaktig saksfølsom kamp.

  • kamp() - Søk om hovedstrengen inneholder en substring som samsvarer med mønsteret angitt av det gjeldende regulære uttrykket. Hvis g flagg er aktivert, vil flere kamper returneres som en matrise.
var textA = 'Alt jeg ser her er epler, apples og apelsiner'; var regexOne = / epler / gi; // Output: ["epler", "APPles", "apPleS"] console.log (textA.match (regexOne));
  • exec () - Søk om hovedstrengen inneholder en substring som samsvarer med mønsteret angitt av det gjeldende regulære uttrykket. Den returnerte gruppen inneholder informasjon om kamp- og fangstgruppene.
var textA = 'Liker du epler?'; var regexOne = / epler /; // Output: epler console.log (regexOne.exec (textA) [0]); // Utgang: Liker du epler? console.log (regexOne.exec (tekstA) .input); 
  • erstatte() - Søk etter en substring som matcher det gitte mønsteret og erstatt det med den medfølgende utskiftningsstrengen.
var textA = 'Liker du aPPles?'; var regexOne = / epler / jeg // Utgang: Liker du mango? console.log (textA.replace (regexOne, 'mangoes'));
  • dele() - Denne metoden lar deg dele hovedstrengen i understrenger basert på separatoren spesifisert som et vanlig uttrykk.
var textA = 'Denne 593 strengen vil være brok294en på steder der d1gits er.'; var regexOne = / \ d + / g // Utgang: ["Denne", "strengen blir knust", "en på steder der d", "gits er." ] console.log (textA.split (regexOne))

Konklusjon

I tidligere opplæringsprogrammer har jeg dekket grunnleggende om regulære uttrykk, samt noen mer kompliserte uttrykk som kan vise seg å være nyttige hver eneste gang. Disse to veiledningene forklarte hvordan forskjellige tegn eller tegnsekvenser fungerer i regulære uttrykk.

  • En nybegynners guide til vanlige uttrykk i JavaScript

    Regelmessige uttrykk lar deg manipulere strenger med koden din. De er veldig kraftige, men de har en spesiell syntaks som kan være forvirrende. Denne opplæringen ...
    Monty Shokeen
    Vanlig uttrykk
  • JavaScript Regular Expressions: Utover det grunnleggende

    Denne opplæringen vil lære deg hvordan du bruker noen sofistikerte vanlige uttrykk i JavaScript for å matche mønstre i en streng. Vi begynner med en rask ...
    Monty Shokeen
    Javascript

Hvis vanlige uttrykk fortsatt forvirrer deg, ville mitt råd være å fortsette å øve og se hvordan andre mennesker kommer med regelmessige uttrykk for å lage et bestemt mønster.