RegExp.prototype.toString()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
ThetoString() method ofRegExp instances returns a string representing this regular expression.
In this article
Try it
console.log(new RegExp("a+b+c"));// Expected output: /a+b+c/console.log(new RegExp("a+b+c").toString());// Expected output: "/a+b+c/"console.log(new RegExp("bar", "g").toString());// Expected output: "/bar/g"console.log(new RegExp("\n", "g").toString());// Expected output: "/\n/g"console.log(new RegExp("\\n", "g").toString());// Expected output: "/\n/g"Syntax
toString()Parameters
None.
Return value
A string representing the given object.
Description
TheRegExp object overrides thetoString() method of theObject object; it does not inheritObject.prototype.toString(). ForRegExp objects, thetoString() method returns a string representation of the regular expression.
In practice, it reads the regex'ssource andflags properties and returns a string in the form/source/flags. ThetoString() return value is guaranteed to be a parsable regex literal, although it may not be the exact same text as what was originally specified for the regex (for example, the flags may be reordered).
Examples
>Using toString()
The following example displays the string value of aRegExp object:
const myExp = new RegExp("a+b+c");console.log(myExp.toString()); // '/a+b+c/'const foo = new RegExp("bar", "g");console.log(foo.toString()); // '/bar/g'Empty regular expressions and escaping
SincetoString() accesses thesource property, an empty regular expression returns the string"/(?:)/", and line terminators such as\n are escaped. This makes the returned value always a valid regex literal.
new RegExp().toString(); // "/(?:)/"new RegExp("\n").toString() === "/\\n/"; // trueSpecifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-regexp.prototype.tostring> |