Validation uses the current environment's JavaScript engine. Advanced flags are only enabled if they are supported.
How it works
The regular expression test bench lets you build a pattern and test it live against a sample text. You can search for matches, replace and split strings, see the captured groups (positional and named) and their positions, and toggle the engine's flags visually.
It uses JavaScript's native regular expression engine, the same one that runs in the browser and in Node.js, and generates both the literal /pattern/flags version and the equivalent with the RegExp constructor to copy directly into your code. Everything runs locally, without sending the text to any server.
Examples
Fecha de vencimiento: 2026-07-212026-07-21The pattern \duser@example.comexample.comWith (?<host>[\w.-]+) after the @, the named group "host" captures the domain.Use cases
- Validate formats like emails, dates, postal codes, or identifiers before using them in a form or an API.
- Extract data from a text (URLs, amounts, tags) using named capture groups.
- Test a mass replacement before applying it in a code editor or a script.
- Split a string by a variable separator and debug why a pattern does not match as you expected.
Frequently asked questions
Which regular expression engine does it use?
JavaScript's native engine. Its syntax is very similar to that of other languages, but it has differences with PCRE, Python, or .NET, for example in lookbehinds or some Unicode escapes. If you are going to use the pattern outside JavaScript, it is best to verify it in that environment.
What are the g, i, m, s, u, v, y, and d flags for?
g finds all matches; i ignores case; m makes ^ and $ work per line; s lets the dot include line breaks; u and v enable Unicode mode; y (sticky) forces a match right where the previous one ended; and d exposes the positions of each match and group.
How do named groups work?
They are defined with (?<name>...) and let you refer to what was captured by its name instead of its number. In a replacement you recover them with $<name>, which makes patterns more readable and easier to maintain.
Is the test text sent to any server?
No. Both the compilation of the pattern and its execution on the text happen in your browser, so you can test with real data without exposing it.