acento.io
Udviklerværktøj

Regex Tester

Test JavaScript-regulære udtryk i realtid — alle matches fremhævet, capture groups listet, og dine data forlader aldrig din browser.

Af Carlos Suárez , Systemingeniør
Sidst opdateret:

Hvad dette Regex Tester gør

Denne danske version af Regex Tester lader dig skrive et JavaScript-regulært udtryk og øjeblikkeligt se, hvilke dele af din tekst der matcher — fremhævet direkte i inputfeltet. Det er et hurtigt alternativ til at sende kode i produktion for at finde ud af, om dit mønster virker. Værktøjet er 100 % klient-side — dine data forlader aldrig din browser. Ingen upload, ingen sporing, ingen serverlogfiler. Det danske alfabet har 29 bogstaver, herunder æ, ø og å, og et regulært udtryk som [a-zA-ZæøåÆØÅ]+ er ofte nødvendigt for korrekt at matche dansk tekst. Du kan teste flags som g, i, m, s, u og y med ét klik og se capture groups — både nummererede og navngivne — med deres værdier og positioner. En sikkerhedsguard forhindrer zero-width-matches i at fryse browseren. Har du brug for at rense eller sammenligne teksten bagefter, kan [text diff](/da/text-diff/)-værktøjet hjælpe dig videre.

Funktioner

  • Live fremhævning af matches. Hvert match lyses op i din tekst med det samme, mens du skriver — ingen grund til at klikke på en knap.
  • Fuld capture group-inspektion. Se nummererede og navngivne capture groups med eksakte værdier og tegnpositioner for hvert match.
  • Flag-toggle med ét klik. Slå g, i, m, s, u og y til og fra og se straks, hvordan resultatet ændrer sig — nyttigt når du sammenligner flag-kombinationer.
  • Venlige fejlbeskeder. Ugyldige mønstre giver en klar fejlbesked i stedet for en kryptisk exception — du ved præcis, hvad der gik galt.
  • Zero-width-match beskyttelse. Mønstre som ^ eller lookarounds kan ellers skabe uendelige loops. En indbygget guard stopper det, før siden fryser.
  • Privat og offline-klar. Alt kører i din browser via JavaScript's native RegExp-motor. Ingen server, ingen logning, ingen cookies.

Sådan bruger du Regex Tester

Tre trin er normalt nok til at verificere et mønster og forstå, hvad det faktisk fanger.

  1. Skriv dit regulære udtryk. Indsæt mønstret i regex-feltet, f.eks. (?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2}) for at matche ISO 8601-datoer.
  2. Indsæt din teststreng. Kopier en repræsentativ tekst — en logfil, en URL, en e-mailadresse — ind i tekstfeltet.
  3. Slå flags til efter behov. Klik på i for case-insensitiv matching eller g for alle forekomster i stedet for kun den første.
  4. Undersøg capture groups. Nedenfor resultaterne ser du hver gruppe med navn eller nummer, dens værdi og start- og slutposition i strengen.

Typiske anvendelser

  • Validér e-mails og URL'er før produktion. Test din regex mod rigtige adresser og edge cases, inden du sender fejlramt validering ud til brugerne.
  • Parser logfiler fra servere. Træk IP-adresser, statuskoder eller tidsstempler ud af Apache- eller Nginx-loglinjer med ét mønster og se alle hits fremhævet.
  • Debug navngivne capture groups. Kontrollér, at (?<brugernavn>[\w.]+) fanger præcis det felt, du forventer, inden du kobler det på en parser.
  • Sammenlign flag-kombinationer hurtigt. Afprøv om tilføjelsen af m gør ^ og $ til linjeanker i stedet for helstreng-anker — og se forskellen med det samme.
  • Rens og normaliser dansk tekst. Brug mønstre som [æøåÆØÅ\w]+ til at identificere ord korrekt i dansk indhold. Til videre tekstbehandling kan [case converter](/da/case-converter/) spare dig for manuelt arbejde.

Ofte stillede spørgsmål

Er mine mønstre og tekster private?

Ja. Regex Tester kører udelukkende i din browser — hverken mønstret eller teststrengen sendes til en server. Der er ingen upload, ingen logfiler og ingen sporing af nogen art.

Hvilken regex-motor bruger værktøjet?

Det er JavaScripts native RegExp-motor, som følger ECMAScript-specifikationen. Det betyder, at du ikke får alle PCRE-funktioner — rekursive mønstre findes f.eks. ikke — men alt, hvad Node.js og browsere understøtter, virker præcis som forventet.

Hvad er forskellen på `g`-flaget og ingen flag?

Uden g finder motoren kun det første match og stopper. Med g (global) gennemløbes hele strengen, og alle forekomster returneres. Det er en hyppig fejlkilde, når man forventer alle matches men glemmer flaget.

Hvorfor fryser min side, når jeg bruger `.*`?

Grådige kvantifikatorer som .* kombineret med visse mønstre kan skabe katastrofal backtracking. Zero-width-matches fra ankre og lookarounds kan desuden skabe uendelige loops. Denne tester har en sikkerhedsguard, der afbryder sådanne mønstre, inden browseren går i stå.

Kan jeg bruge navngivne capture groups?

Ja. Syntaksen (?<navn>mønster) virker fuldt ud, og alle navngivne grupper vises med navn, værdi og position i resultatlisten — praktisk, inden du bygger en egentlig parser.

Hvad gør jeg, om mit mønster matcher for meget?

Skift fra grådige (.*) til ikke-grådige kvantifikatorer (.*?), og brug ankre (^, $) til at begrænse, hvad der kan matche. Brug værktøjet til at sammenligne de to varianter side om side med g-flaget slået til.