Browser-based developer tools

Regex Matcher and Validator

Test JavaScript regular expressions, validate patterns, inspect matches and review capture groups without sending text to a backend.

Pattern

Ready

Matches

Ready

Regex Matcher GuideParser and validator notes Email RegexForm validation pattern URL RegexHTTP and HTTPS links UUID RegexVersion 4 ID checks Regex ExamplesEmail, URL, UUID and log patterns Log Parser RegexCapture levels and messages JSON FormatterValidate and inspect JSON XML FormatterFormat and convert XML Timestamp ConverterUnix time and ISO dates

Reference notes

Regex matcher, parser and pattern checker

JavaScript flavor

Formalint uses the browser's JavaScript regular expression engine, so results match what front-end code and many Node.js tools will produce.

Capture groups

Each match lists capture groups so you can quickly confirm whether your parser extracts the fields you expect.

Pattern validation

The validator reports invalid regular expression syntax before you copy a pattern into JavaScript, Node.js or frontend form validation code.

Frequently asked

Regex tester questions

Which regex flavor does this tool use?

Matching runs on the JavaScript RegExp engine built into the browser. Behavior closely matches Node.js and browser JavaScript, but differs in some edge cases from PCRE used by PHP or Python's re module.

What do the g, i, and m flags do?

The g flag finds all matches instead of stopping at the first one, i makes matching case-insensitive, and m changes ^ and $ to match the start and end of each line instead of only the whole string.

Why does my pattern match too much or too little?

This is usually a greedy versus lazy quantifier issue. A pattern like .* matches as much as possible, while .*? stops at the first valid match, which often gives more predictable results for extracting values between delimiters.

Can I see named capture groups?

Yes. Capture groups, including named groups defined with the (?<name>...) syntax, are listed separately from the full match for each result.