JavaScript Regex Cheat Sheet

Om du arbetar med regelbundna uttryck måste du veta vad varje specialtecken, flagga och metod gör. Detta är ett vanligt förekommande cheatsblad som du kan hänvisa till när du försöker komma ihåg hur en metod, specialtecken eller flagga fungerar.

Definiera en vanlig uttryck i JavaScript

Det finns två sätt att definiera ett vanligt uttryck i JavaScript.

  • var rgx = / ^ (\ d +) / - Du kan använda ett ordinärt uttryck bokstavligt och bifoga mönstret mellan snedstreck. Detta utvärderas vid kompileringstid och ger bättre prestanda om det reguljära uttrycket stannar konstant.
  • var rgx = ny RegExp ('^ (\ d +)') - Konstruktörsfunktionen är användbar när det reguljära uttrycket kan ändras programmatiskt. Dessa sammanställs under körtid.

Matchar en specifik uppsättning tecken

Följande sekvenser kan användas för att matcha en viss uppsättning tecken.

  • \ w - Matchar alla orden karaktärer. Ordtecken är alfanumeriska (a-z, A-Z-tecken och understreck).
  • \ W - Matchar icke-word-tecken. Allt utom alfanumeriska tecken och understrykning.
  • \ d - Matchar siffriga tecken. Varje siffra från 0 till 9.
  • \ D - Matchar icke-siffra tecken. Allt utom 0 till 9.
  • \ s - Matchar vita bokstäver. Detta inkluderar mellanslag, flikar och radbrytningar.
  • \ S - Matchar alla andra tecken förutom blanksteg.
  • . - Matchar alla tecken förutom radbrytningar.
  • [A-Z] - Matchar tecken i ett intervall. Till exempel, [A-E] kommer att matcha A, B, C, D och E.
  • [ABC] - Matchar ett tecken i den angivna uppsättningen. Till exempel, [AMT] kommer bara att matcha A, M och T.
  • [^ ABC] - Matchar alla tecken inte närvarande i den givna uppsättningen. Till exempel, [^ A-E] kommer att matcha alla andra tecken utom A, B, C, D och E.

Ange antal tecken att matcha

Alla ovanstående uttryck kommer att matcha en enda karaktär åt gången. Du kan lägga till kvantifierare för att ange hur många tecken som ska ingå i matchen samtidigt.

  • + - Matchar ett eller flera förekomster av föregående token. Till exempel, \ w+ kommer att återvända ABD12D som en enda match istället för sex olika matcher.
  • * - Matchar noll eller fler förekomster av föregående token. Till exempel, b \ w * matchar de djärva delarna i b, fladdermus, bajhdsfbfjhbe. I grund och botten matchar det noll eller flera ordtecken efter "b".
  • m, n - Matchar minst m och högst n förekomster från föregående token. M, kommer att matcha minst m förekomster, och det finns ingen övre gräns för matchen. K kommer att matcha exakt k förekomster av föregående token.
  • ? - Matchar noll eller en förekomst av föregående tecken. Det kan till exempel vara användbart när du matchar två varianter av stavning för samma arbete. Till exempel, /beteende/ kommer att matcha båda beteende och beteende.
  • | - Matchar uttrycket antingen före eller efter rörtecken. Till exempel, / Se (a | e) / matchar både se och hav.

Parentesrelaterade reguljära uttryck

  • (ABC) - Detta kommer att gruppera flera tokens tillsammans och kom ihåg substring som matchas av dem för senare användning. Detta kallas en infångningsgrupp.
  • (?:ABC) - Detta kommer också att gruppera flera tokens tillsammans men kommer inte ihåg matchen. Det är en icke-fångande grupp.
  • \ D + (? = ABC) - Detta kommer att matcha token (n) som föregår (? = ABC) del endast om det följs av abc. Delen abc kommer inte att ingå i matchen. De \ d del är bara ett exempel. Det kan vara vilken som helst vanlig uttryckssträng.
  • \ D + (?! ABC) - Detta kommer att matcha token (n) som föregår (?!ABC) del bara om det är inte följd av abc. Delen abc kommer inte att ingå i matchen. De \ d del är bara ett exempel. Det kan vara vilken som helst vanlig uttryckssträng.

Andra reguljära uttryckstecken

Det finns också några andra vanliga uttryckstecken som inte har täcks i tidigare avsnitt:

  • ^ - Leta efter det vanliga uttrycket i början av strängen eller början av en rad om den multilinska flaggan är aktiverad.
  • $ - Leta efter det reguljära uttrycket i slutet av strängen eller slutet av en rad om den multilinska flaggan är aktiverad.
  • \ b - Match endast föregående token om det finns ett ordgräns.
  • \ B - Match endast föregående token om det inte finns någon ordgräns.

Använda flaggor med regelbundna uttryck

Flaggor kan användas för att styra hur ett vanligt uttryck ska tolkas. Du kan använda flaggor antingen ensamma eller tillsammans i vilken ordning du vill. Dessa är de fem flaggor som finns tillgängliga i JavaScript. 

  • g - Sök strängen för alla matchningar med givet uttryck istället för att returnera bara den första.
  • jag - Gör sökningen oåterkallande så att ord som Apple, aPPLe och Apple kan alla matchas på en gång.
  • m - Denna flagga kommer att se till att ^ och $ tokens letar efter en match i början eller slutet av varje rad istället för hela strängen.
  • u - Med den här flaggan kan du använda Unicode-kodpunktsavbrott i ditt vanliga uttryck.
  • y - Detta kommer att berätta för JavaScript att bara leta efter en match vid den aktuella positionen i målsträngen.

Du kan ange flaggor för ett vanligt uttryck i JavaScript, antingen genom att lägga till dem i slutet av ett ordinärt uttryck eller genom att skicka dem till RegExp konstruktör. Till exempel, / Cat / i matchar alla händelser av katt oavsett fall, och RegExp ("katt", "jag") gör detsamma.

Användbara regelbundna uttrycksmetoder i JavaScript

De reguljära uttryck som du skapar med hjälp av de flaggor och teckensekvenser vi hittills har diskuterat är avsedda att användas med olika metoder för att söka, ersätta eller dela en sträng. Här är några metoder relaterade till reguljära uttryck.

  • testa() - Kontrollera om huvudsträngen innehåller en substring som matchar det mönster som anges av det angivna reguljära uttrycket. Det återvänder Sann på framgångsrik matchning och falsk annat.
var textA = "Jag gillar Apple mycket"; var textB = "Jag gillar APPles"; var regexOne = / äpplen $ / i // Output: false console.log (regexOne.test (textA)); // Output: true console.log (regexOne.test (textB)); 

I det ovanstående exemplet ska det reguljära uttrycket söka efter ordet äpplen bara i slutet av strängen. Det var därför vi fick falsk i det första fallet.

  • Sök() - Kontrollera om huvudsträngen innehåller en substring som matchar det mönster som anges av det angivna reguljära uttrycket. Den returnerar matchens index på framgång och -1 annat.
var textA = "Jag gillar Apple mycket"; var regexOne = / äpplen /; var regexTwo = / äpplen / jag; // Output: -1 console.log (textA.search (regexOne)); // Utgång: 7 console.log (textA.search (regexTwo));

I det här fallet återvände det första regelbundna uttrycket -1 eftersom det inte fanns någon exakt fallkänslig matchning.

  • match() - Sök om huvudsträngen innehåller en substring som matchar det mönster som anges av det angivna reguljära uttrycket. Om g flaggan är aktiverad, kommer flera matchningar att returneras som en array.
var textA = 'Allt jag ser här är äpplen, APPles och apPleS'; var regexOne = / äpplen / gi; // Utmatning: ["äpplen", "APPles", "apPleS"] console.log (textA.match (regexOne));
  • exec () - Sök om huvudsträngen innehåller en substring som matchar det mönster som anges av det angivna reguljära uttrycket. Den returnerade matrisen innehåller information om matchnings- och fångstgrupper.
var textA = "Gillar du äpplen?"; var regexOne = / äpplen /; // Output: apples console.log (regexOne.exec (textA) [0]); // Utmatning: Gillar du äpplen? console.log (regexOne.exec (Texta) .input); 
  • byta ut() - Sök efter en substring som matchar det givna mönstret och ersätt det med den medföljande ersättningssträngen.
var textA = 'Gillar du aPPles?'; var regexOne = / äpplen / jag // Utmatning: Gillar du mango? console.log (textA.replace (regexOne, 'mangoes'));
  • dela() - Med den här metoden kan du dela huvudsträngen i substrängar baserat på separatorn som anges som ett reguljärt uttryck.
var textA = 'Denna 593 sträng kommer att vara brok294en på platser där d1gits är.'; var regexOne = / \ d + / g // Output: ["This", "strängen kommer bli sönder", "en på platser där d", "gits är." ] console.log (textA.split (regexOne))

Slutsats

I tidigare tutorials har jag täckt grunderna för reguljära uttryck och några mer komplicerade uttryck som kan visa sig vara användbara varje gång. Dessa två handledning förklarade hur olika tecken eller teckensekvenser fungerar i reguljära uttryck.

  • En nybörjarguide till regelbundna uttryck i JavaScript

    Med regelbundna uttryck kan du manipulera strängar med din kod. De är mycket kraftfulla, men de har en speciell syntax som kan vara förvirrande. Denna handledning ...
    Monty Shokeen
    Vanliga uttryck
  • JavaScript Regular Expressions: Utöver grunderna

    Denna handledning lär dig hur du använder några sofistikerade reguljära uttryck i JavaScript för att matcha mönster i en sträng. Vi börjar med en snabb ...
    Monty Shokeen
    JavaScript

Om regelbundna uttryck förvirrar dig fortfarande, skulle mitt råd vara att fortsätta att öva och se hur andra människor kommer med regelbundna uttryck för att göra ett visst mönster.