Codectionary / Developer documentation / JavaScript

Regular Expressions

Regular expressions (RegExp) describe patterns for matching text, used for validation, searching, and replacing. They can be created with literal syntax (/pattern/flags) or the RegExp constructor. Common methods include test() to check for a match, and string methods like match(), replace(), and split() that accept a regex pattern.

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"));      // false

Common 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 letter

Best 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

At a glance

Purpose
Application logic and interaction
File extension
.js ยท .mjs
Runs in
Browsers and JavaScript runtimes
Usually used with
HTML, CSS and Web APIs

Specifications & further reading

Related JavaScript documentation