Reguljära uttryck i JavaScript: en introduktion

Senaste uppdateringen: 5 November 2025
Författare: TecnoDigital
Reguljära uttryck i JavaScript

Välkommen till denna kompletta guide till reguljära uttryck i JavaScript! I den här artikeln kommer vi att utforska i detalj vad reguljära uttryck är, hur de används i JavaScript och hur de kan hjälpa dig att förenkla och optimera din kod. Från grunderna till praktiska exempel, vi kommer att täcka allt du behöver veta för att börja få ut det mesta av reguljära uttryck i dina JavaScript-projekt. Så låt oss komma igång!

Introduktion till reguljära uttryck

Reguljära uttryck är sökmönster som används för att hitta och manipulera text i teckensträngar. De består av en kombination av bokstavliga tecken och metatecken, som definierar specifika regler för att hitta matchningar i text. Dessa regler kan inkludera sökning efter specifika tecken, teckenintervall, upprepningar, alternativ och mycket mer.

I JavaScript skapas reguljära uttryck med hjälp av klassen RegExp eller med hjälp av det bokstavliga /patrón/. Mönstret är själva det reguljära uttrycket, som är inneslutet mellan snedstreck. Låt oss titta på ett enkelt exempel:

const regex = /hola/;

 

I det här exemplet har vi skapat ett reguljärt uttryck som söker efter strängen "hej" i en text. Nu när vi har en grundläggande förståelse för vad reguljära uttryck är, låt oss utforska några nyckelbegrepp och avancerade tekniker för att arbeta med dem i JavaScript.

Grundläggande syntax för reguljära uttryck

Reguljära uttryck i JavaScript består av flera nyckelelement som gör att vi kan definiera mer komplexa sökmönster. Dessa element inkluderar bokstavliga tecken, metatecken, teckenklasser, kvantifierare, ankare och mer. Låt oss titta på några exempel på dessa element:

Bokstavliga tecken

Bokstavliga tecken är de som söks efter som de visas i texten. Till exempel det reguljära uttrycket /hola/ kommer att söka efter teckensekvensen "hej" i en textsträng. Det är viktigt att notera att reguljära uttryck är skiftlägeskänsliga, så /hola/ kommer inte att matcha "Hello" eller "HELLO".

Metakaraktärer

Metatecken är specialtecken som har speciell betydelse i reguljära uttryck. Till exempel metatecken . Den används för att representera alla tecken utom en nyrad. En annan vanlig metakaraktär är ^, som används för att indikera början på en textsträng. Till exempel det reguljära uttrycket /^hola/ kommer att matcha alla textsträngar som börjar med "hej".

Karaktärsklasser

Teckenklasser används för att söka efter vilket tecken som helst inom en specifik uppsättning. Till exempel det reguljära uttrycket /[aeiou]/ kommer att matcha valfri vokal i en textsträng. Det är också möjligt att använda teckenintervall i teckenklasser. Till exempel det reguljära uttrycket /[a-z]/ kommer att matcha alla gemener.

Kvantifierare

Kvantifierare används för att ange antalet förekomster av ett element i ett reguljärt uttryck. Till exempel kvantifieraren * indikerar att föregående element kan visas noll eller fler gånger. Kvantifieraren + indikerar att det föregående elementet ska visas en eller flera gånger. Till exempel det reguljära uttrycket /a+/ kommer att matcha ett eller flera "a" i en textsträng.

Ankare

Ankare används för att indikera positionen för en matchning i en textsträng. Till exempel ankaret \b matchar en ordgräns. Till exempel det reguljära uttrycket /bholab/ matchar endast ordet "hej" som en hela ordet, utan att matcha längre ord som innehåller "hej" som en del av dem.

Det här är bara några exempel på grundläggande syntax för reguljära uttryck i JavaScript. Som Låt oss gå vidare i den här artikeln, kommer vi att utforska mer avancerade koncept och tekniker för att arbeta med reguljära uttryck i JavaScript.

Grundläggande matchsökning

En av de vanligaste operationerna som utförs med reguljära uttryck är att söka efter matchningar i en textsträng. I JavaScript kan vi använda metoden search() för att hitta den första matchningen av ett reguljärt uttryck i en textsträng. Låt oss se ett exempel:

const texto = "¡Hola, mundo!";
const regex = /mundo/;
const indice = texto.search(regex);
console.log(indice); // 7

I det här exemplet har vi använt metoden search() för att hitta den första matchningen av det reguljära uttrycket /mundo/ i textsträngen "Hej, värld!" Metoden search() returnerar indexet för den första matchningen som hittades, eller -1 om ingen matchning hittas.

Förutom metoden search(), JavaScript tillhandahåller även andra användbara metoder för att arbeta med reguljära uttryck, som t.ex match(), replace(), split() y test(). Var och en av dessa metoder har sitt eget syfte och kan användas enligt dina specifika behov.

Använda modifierare och flaggor

I JavaScript kan reguljära uttryck innehålla modifierare och flaggor som möjliggör mer flexibla och anpassade sökningar. Modifierare läggs till i slutet av ett reguljärt uttryck och ändrar dess beteende. Några av de vanligaste modifierarna är:

jag (okänslig)

Modifieraren i används för att utföra en sökning som inte är skiftlägeskänslig. Till exempel det reguljära uttrycket /hola/i kommer att matcha både "hej" och "Hello" eller "HELLO".

g (global)

Modifieraren g Den används för att utföra en global sökning på hela textsträngen, istället för att stanna vid den första matchningen som hittas. Till exempel det reguljära uttrycket /a+/g kommer att matcha alla förekomster av ett eller flera "a" i en textsträng.

  Upptäck det nya Temporal API i JavaScript

m (flerlinje)

Modifieraren m Den används för att utföra en sökning på flera rader i en textsträng. Till exempel det reguljära uttrycket /^hola/m kommer att matcha ordet "hej" i början av varje rad i en textsträng.

Förutom modifierare tillåter JavaScript även användning av flaggor i reguljära uttryck. Flaggor läggs till efter det andra snedstrecket när du skapar ett reguljärt uttryck med klassen RegExp. Några av de vanligaste flaggorna är:

jag (okänslig)

Som modifieraren i, flaggan i utför en skiftlägeskänslig sökning. Till exempel det reguljära uttrycket new RegExp("hola", "i") kommer att matcha både "hej" och "Hello" eller "HELLO".

g (global)

Som modifieraren g, flaggan g utför en global sökning på hela textsträngen. Till exempel det reguljära uttrycket new RegExp("a+", "g") kommer att matcha alla förekomster av ett eller flera "a" i en textsträng.

m (flerlinje)

Som modifieraren m, flaggan m utför en sökning på flera rader i en textsträng. Till exempel det reguljära uttrycket new RegExp("^hola", "m") kommer att matcha ordet "hej" i början av varje rad i en textsträng.

Att använda modifierare och flaggor i reguljära JavaScript-uttryck kan vara mycket användbart för att skräddarsy sökningar efter olika specifika fall och krav. Experimentera med dem och ta reda på hur du kan få ut det mesta av dessa funktioner i din kod.

Metatecken och specialtecken

Metatecken och specialtecken är nyckelelement i reguljära uttryck som gör att vi kan utföra mer kraftfulla och flexibla sökningar. Vi har redan nämnt några metakaraktärer, som t.ex . y ^, men det finns många fler som du kan använda i dina reguljära uttryck. Låt oss titta på några av de vanligaste metakaraktärerna och specialtecken:

. (punkt)

Metaraktären . Den används för att representera alla tecken utom en nyrad. Till exempel det reguljära uttrycket /h.t/ kommer att matcha "hatt", "het", "träff" och alla andra ord på tre bokstäver som börjar med "h" och slutar med "t".

\ (omvänt snedstreck)

Omvänt snedstreck används för att undvika specialtecken i ett reguljärt uttryck. Om du till exempel vill söka efter en bokstavlig punkt i en textsträng måste du undkomma den med omvänt snedstreck. Det reguljära uttrycket /www\.google\.com/ kommer att matcha textsträngen "www.google.com".

\d (siffra)

Metaraktären \d används för att söka efter valfri siffra från 0 till 9. Till exempel det reguljära uttrycket /\d+/ kommer att matcha ett eller flera siffror i en textsträng.

\w (alfanumeriskt tecken)

Metaraktären \w används för att söka efter alla alfanumeriska tecken (versaler och gemener, siffror och understreck). Till exempel det reguljära uttrycket /\w+/ kommer att matcha alla ord med ett eller flera alfanumeriska tecken i en textsträng.

Det här är bara några exempel på metatecken och specialtecken du kan använda i dina reguljära uttryck. När du blir mer bekant med reguljära uttryck i JavaScript kommer du att upptäcka en mängd olika alternativ för att förfina dina sökningar och textmanipulationer.

Karaktärsklasser och intervall

Teckenklasser är ett annat nyckelelement i reguljära uttryck som låter oss söka efter vilket tecken som helst inom en specifik uppsättning. I JavaScript kan vi använda parenteser [] för att definiera en teckenklass. Låt oss titta på några exempel på karaktärsklasser och intervall:

[aeiou]

Karaktärsklassen [aeiou] kommer att matcha valfri vokal i en textsträng. Till exempel det reguljära uttrycket /[aeiou]/ kommer att matcha "a", "e", "i", "o" eller "u" i en textsträng.

[Az]

Utbudet av tecken [a-z] kommer att matcha alla gemener i det engelska alfabetet. Till exempel det reguljära uttrycket /[a-z]/ kommer att matcha alla gemener i en textsträng.

[0-9]

Utbudet av tecken [0-9] kommer att matcha valfri siffra från 0 till 9 i en textsträng. Till exempel det reguljära uttrycket /[0-9]/ kommer att matcha vilket ensiffrigt nummer som helst.

[A-Z-z]

Karaktärsklassen [A-Za-z] kommer att matcha alla versaler eller gemener i det engelska alfabetet. Till exempel det reguljära uttrycket /[A-Za-z]/ kommer att matcha vilken bokstav som helst i en textsträng.

Teckenklasser och intervall tillåter oss att definiera specifika uppsättningar tecken att söka efter i ett reguljärt uttryck. Använd dem för att skräddarsy dina sökningar efter dina specifika behov och begränsningar.

Kvantifierare och upprepningar

Kvantifierare och upprepningar är nyckelelement i reguljära uttryck som gör att vi kan specificera antalet förekomster av ett element i en textsträng. Låt oss titta på några av de vanligaste kvantifierarna i JavaScript:

* (asterisk)

Kvantifieraren * indikerar att föregående element kan visas noll eller fler gånger. Till exempel det reguljära uttrycket /a*/ kommer att matcha noll eller fler 'a' i en textsträng.

  JavaScript-ramverk: Allt du behöver veta för att välja det bästa

+ (mer)

Kvantifieraren + indikerar att det föregående elementet ska visas en eller flera gånger. Till exempel det reguljära uttrycket /a+/ kommer att matcha ett eller flera "a" i en textsträng.

? (fråga)

Kvantifieraren ? indikerar att föregående element kan visas noll eller en gång. Till exempel det reguljära uttrycket /colou?r/ kommer att matcha både "färg" och "färg".

{n} (exakt n gånger)

Kvantifieraren {n} indikerar att det föregående elementet måste visas exakt n gånger. Till exempel det reguljära uttrycket /a{3}/ kommer att matcha exakt tre "a" i en textsträng.

{n,} (minst n gånger)

Kvantifieraren {n,} indikerar att det föregående elementet måste visas minst n gånger. Till exempel det reguljära uttrycket /a{2,}/ kommer att matcha två eller flera 'a' i en textsträng.

{n,m}

Kvantifieraren {n,m} indikerar att det föregående elementet måste visas minst n gånger och högst m gånger. Till exempel det reguljära uttrycket /a{2,4}/ kommer att matcha två, tre eller fyra "a" i en textsträng.

Det här är bara några exempel på kvantifierare du kan använda i dina reguljära uttryck. Kvantifierare tillåter oss att specificera mönster för upprepning i textsökningar och manipulationer, vilket gör det lättare att extrahera specifik information från textsträngar.

Ankare och ordgränser

Ankare och ordgränser är element som gör att vi kan ange positionen för en matchning inom en textsträng. Dessa element är särskilt användbara när vi vill söka efter hela ord eller se till att en matchning är i början eller slutet av en rad. Låt oss titta på några exempel på ankare och ordgränser:

\b (ordgräns)

Ordet gräns \b matchar gränsen mellan ett alfanumeriskt tecken och ett icke-alfanumeriskt tecken. Till exempel det reguljära uttrycket /\bjavascript\b/ matchar endast ordet "javascript" som ett helt ord, inte längre ord som innehåller "javascript" som en del av dem.

^ (radens början)

Karaktären ^ Den används för att indikera början på en rad i en textsträng. Till exempel det reguljära uttrycket /^hola/ kommer att matcha ordet "hej" i början av varje rad i en textsträng.

$ (slut på raden)

Karaktären $ Den används för att indikera slutet av en rad i en textsträng. Till exempel det reguljära uttrycket /mundo$/ kommer att matcha ordet "värld" i slutet av varje rad i en textsträng.

\A (början av text)

Karaktären \A Den används för att indikera början på all text i en textsträng, inte bara början på en rad. Till exempel det reguljära uttrycket /^\AHola/ kommer att matcha ordet "Hej" i början av hela texten.

\Z (slut på text)

Karaktären \Z används för att indikera slutet på all text i en textsträng, inte bara slutet på en rad. Till exempel det reguljära uttrycket /Mundo\Z/ kommer att matcha ordet "World" i slutet av hela texten.

Ankare och ordgränser gör att vi kan söka efter matchningar på specifika platser inom en textsträng, vilket kan vara användbart i situationer där vi vill säkerställa att en matchning finns på en specifik position.

Grupper och fångar

Grupper och fångar är avancerade element i reguljära uttryck som gör att vi kan gruppera underuttryck och fånga dem för senare användning. Låt oss se hur grupper och fångar fungerar:

( ) (parenteser)

Paranteserna är De brukar gruppera sig deluttryck i ett reguljärt uttryck. Till exempel det reguljära uttrycket /(d{2})-(d{2})-(d{4})/ se används för att söka efter ett datum i formatet "dd-mm-åååå. Grupperna ( ) De tillåter oss att fånga dag-, månads- och årsvärden separat.

\1, \2, \3 (gruppreferenser)

Gruppreferenser används för att referera till tidigare infångade grupper i ett reguljärt uttryck. Till exempel det reguljära uttrycket /(\w+) \1/ kommer att matcha vilket ord som helst följt av samma ord som upprepas. Till exempel "hej hej", "världsvärld", etc.

?: (icke-fångande grupp)

Symbolen ?: Den används för att skapa icke-fångande grupper. Dessa grupper används när vi vill gruppera underuttryck, men vi vill inte fånga resultatet. Till exempel det reguljära uttrycket /https?:\/\/(?:www\.)?google\.com/ kommer att matcha både "http://www.google.com" och "https://google.com", men kommer bara att fånga den relevanta delen av webbadressen.

Grupper och fångar gör att vi kan strukturera och organisera våra reguljära uttryck på ett mer effektivt och läsbart sätt. De ger oss också möjligheten att fånga specifika värden för senare analys. använda i våra applikationer.

Användbara metoder för att arbeta med reguljära uttryck

JavaScript tillhandahåller flera användbara metoder för att arbeta med reguljära uttryck. Dessa metoder tillåter oss att utföra vanliga operationer som att söka, ersätta och dela textsträngar med hjälp av reguljära uttryck. Låt oss titta på några av dessa metoder:

match()

Metoden match() Den används för att hitta alla matchningar av ett reguljärt uttryck i en textsträng och returnera en array med resultaten. Till exempel:

const texto = "¡Hola, mundo!";
const regex = /o/g;
const coincidencias = texto.match(regex);
console.log(coincidencias); // ["o", "o"]

I det här exemplet har vi använt metoden match() för att hitta alla matchningar av det reguljära uttrycket /o/g i textsträngen "Hej, värld!" Metoden match() returnerar en array med alla hittade matchningar.

  Abstrakta syntaxträd i programmering: en komplett guide

byta ut ()

Metoden replace() används för att ersätta matchningar av ett reguljärt uttryck i en textsträng med ett nytt värde. Till exempel:

const texto = "¡Hola, mundo!";
const regex = /mundo/;
const nuevoTexto = texto.replace(regex, "amigo");
console.log(nuevoTexto); // "¡Hola, amigo!"

I det här exemplet har vi använt metoden replace() för att ersätta matchningen av det reguljära uttrycket /mundo/ i textsträngen "Hej, värld!" för ordet "vän". Metoden replace() returnerar en ny textsträng med de ersättningar som gjorts.

dela()

Metoden split() används för att dela upp en textsträng i en array av delsträngar med hjälp av ett reguljärt uttryck som avgränsare. Till exempel:

const texto = "Hola,mundo,amigo";
const regex = /,/g;
const subcadenas = texto.split(regex);
console.log(subcadenas); // ["Hola", "mundo", "amigo"]

I det här exemplet har vi använt metoden split() för att dela upp textsträngen "Hej, världen, vän" i en uppsättning delsträngar med hjälp av det reguljära uttrycket /,/g som en separator. Metoden split() returnerar en array med de resulterande delsträngarna.

testa()

Metoden test() Den används för att kontrollera om ett reguljärt uttryck har några matchningar i en textsträng. Metoden återkommer true om det finns en matchning och false annat. Till exempel:

const texto = "Hola, mundo!";
const regex = /mundo/;
const resultado = regex.test(texto);
console.log(resultado); // true

I det här exemplet har vi använt metoden test() för att kontrollera om det reguljära uttrycket /mundo/ har några matchningar i textsträngen "Hello, world!". Metoden test() ta tillbaka true för det finns en slump.

Det här är bara några av de vanligaste metoderna för att arbeta med reguljära uttryck i JavaScript. Var och en av dessa metoder har sitt eget syfte och kan användas enligt dina specifika behov. Experimentera med dem och upptäck hur de kan göra ditt arbete med reguljära uttryck enklare och snabbare.

Vanliga frågor

Vad är reguljära uttryck i JavaScript? Reguljära uttryck i JavaScript är sökmönster som används för att hitta och manipulera text i teckensträngar.

Hur skapar man reguljära uttryck i JavaScript? Reguljära uttryck i JavaScript skapas med klassen RegExp eller med hjälp av det bokstavliga /patrón/.

Vad är skillnaden mellan modifierare och flaggor i reguljära uttryck? Modifierare läggs till i slutet av ett reguljärt uttryck och ändrar dess beteende. Flaggor läggs till efter det andra snedstrecket när du skapar ett reguljärt uttryck med klassen RegExp.

Vad är skillnaden mellan metoden match() och metoden test()? Metoden match() Den används för att hitta alla matchningar av ett reguljärt uttryck i en textsträng och returnerar en array med resultaten. Metoden test() Den används för att kontrollera om ett reguljärt uttryck har några matchningar i en textsträng och returnerar ett booleskt värde.

Hur kan jag fånga specifika värden med hjälp av grupper i ett reguljärt uttryck? Grupperna ( ) i ett reguljärt uttryck kan du fånga specifika underuttryck. Du kan sedan referera till dessa grupper med hjälp av referenserna \1, \2Etc.

Vilka metoder kan jag använda för att arbeta med reguljära uttryck i JavaScript? Några användbara metoder för att arbeta med reguljära uttryck i JavaScript är match(), replace(), split() y test(). Var och en av dessa metoder har sitt eget syfte och kan användas enligt dina specifika behov.

Slutsats

Reguljära uttryck är ett kraftfullt verktyg för att arbeta med text i JavaScript. Känna till grunderna, kommer syntaxen och avancerade tekniker för reguljära uttryck att låta dig söka, ersätta och manipulera textsträngar effektivt och korrekt. Från grundläggande matchning till att använda användbara modifierare, grupper och metoder, du har lärt dig hur du får ut det mesta av reguljära uttryck i dina JavaScript-projekt.

Kom ihåg att öva och experimentera med olika mönster och använda fall för att stärka din förståelse och förtrogenhet med reguljära uttryck. Tveka inte att använda reguljära uttryck för att förbättra effektiviteten och kvaliteten på din kod!