Syntax
/pattern/flags
new RegExp("pattern", "flags")Examples
Basic Pattern Matching
Testing whether a string matches a pattern.
const hasNumber = /\d/;
console.log(hasNumber.test("abc123")); // true
console.log(hasNumber.test("abcdef")); // false
const emailPattern = /^[\w.-]+@[\w.-]+\.\w+$/;
console.log(emailPattern.test("user@example.com")); // true
console.log(emailPattern.test("not-an-email")); // falseCommon Flags
Using flags to modify matching behavior.
const text = "Cat cat CAT";
console.log(/cat/.test(text)); // true - matches only lowercase "cat"
console.log(/cat/i.test(text)); // true - i flag makes it case-insensitive
const matches = text.match(/cat/gi); // g = global (all matches), i = case-insensitive
console.log(matches); // ["Cat", "cat", "CAT"]Using RegExp with String Methods
Searching, replacing, and splitting strings using patterns.
const sentence = "The rain in Spain";
console.log(sentence.replace(/ain/g, "XXX"));
// "The rXXX in SpXXX"
console.log("2024-01-15".split(/-/));
// ["2024", "01", "15"]
console.log("Hello World".match(/[A-Z]\w+/g));
// ["Hello", "World"] - words starting with a capital letterBest practices
- Use the g flag when you need all matches in a string, not just the first
- Test regular expressions thoroughly with edge cases - they are powerful but easy to get subtly wrong
- For simple string checks (like "does this contain X"), plain string methods like includes() are often clearer than a regex
- Keep complex patterns commented or broken down, since dense regex syntax is notoriously hard to read later
Runtime & versions
Browsers and JavaScript runtimes. Feature availability depends on the language and runtime version used by your project; consult the official reference below.
ECMAScript specification