Logo

Is there a RegExp.escape function in Javascript?

No, JavaScript does not provide a built-in function called RegExp.escape (or similar) in its standard library. However, you can easily implement your own function to escape special regex characters within a string.

1. Why You Need escape()

When building a dynamic regex pattern (e.g., from user input or variable data), you often want to treat special regex metacharacters (like *, +, ?, .) as literal characters. For instance, if a user searches for . (dot), you don’t want it to match “any character”; you want it to match a literal dot.

2. How to Implement Your Own escapeRegex Function

Below is a commonly used approach, which replaces every special regex character with a backslash-prefixed version.

function escapeRegex(str) { return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); }

Explanation

  • The character class [.*+?^${}()|[\]\\] includes the usual suspects that need escaping in most JavaScript regex engines:
    • .
    • *
    • +
    • ?
    • ^
    • $
    • {
    • }
    • (
    • )
    • |
    • [
    • ]
    • \
  • \\$& is a backreference telling the replacement to insert a backslash plus the entire matched character. Essentially, it becomes \$& at runtime, adding the needed backslash before the special character.

Usage Example

const userInput = '.+?*'; const safePattern = escapeRegex(userInput); const regex = new RegExp(safePattern, 'g'); // Now this will literally match ".+?*", not "any char" or "one or more" etc.

3. Is There a Plan to Add RegExp.escape to the Language?

There have been various TC39 proposals and discussions over the years to introduce something like RegExp.escape or String.prototype.escapeRegExp, but so far no built-in method has been added to the official JavaScript standard. Until that happens (if ever), the custom utility function above remains the recommended approach.

4. Final Thoughts & Best Practices

  1. Always Escape if building a regex from dynamic sources, such as user input or variables, to avoid unexpected behavior or potential vulnerabilities.
  2. Cache or Reuse** your escapeRegex function if you call it frequently.
  3. Stay Informed: Keep an eye on the ECMAScript proposals; if RegExp.escape or a similar solution becomes standardized, you can then rely on built-in support.

Bonus: Level Up Your JavaScript & Interview Skills

If you’re interested in mastering JavaScript (including advanced regex usage) or preparing for coding interviews, these DesignGurus.io resources can help:

  1. Grokking JavaScript Fundamentals
    Dive deeper into closures, prototypes, async/await, and more—key for debugging complex regex tasks.

  2. Grokking the Coding Interview: Patterns for Coding Questions
    Learn systematic approaches to coding problems, crucial for interviews and day-to-day engineering.

For live feedback from ex-FAANG engineers, explore their Mock Interview services:

Finally, check out the DesignGurus.io YouTube channel for free tutorials on system design, coding patterns, and more.

Summary: There is no built-in RegExp.escape in JavaScript. Instead, use a custom function like:

function escapeRegex(str) { return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); }

to safely escape special regex characters.

CONTRIBUTOR
TechGrind