RegExp.prototype.toString()

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

toString() 方法,屬於 RegExp 例項,返回一個表示該正則表示式的字串。

試一試

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"

語法

js
toString()

引數

無。

返回值

表示給定物件的字串。

描述

RegExp 物件覆蓋了 Object 物件的 toString() 方法;它不繼承 Object.prototype.toString()。對於 RegExp 物件,toString() 方法返回正則表示式的字串表示。

實際上,它會讀取正則表示式的 sourceflags 屬性,並返回一個格式為 /source/flags 的字串。toString() 的返回值保證是一個可解析的正則表示式字面量,儘管它可能與最初為正則表示式指定的文字不完全相同(例如,標誌可能會重新排序)。

示例

使用 toString()

以下示例顯示了 RegExp 物件的字串值

js
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'

空正則表示式和轉義

由於 toString() 訪問 source 屬性,因此空正則表示式返回字串 "/(?:)/",並且像 \n 這樣的行終止符會被轉義。這使得返回值始終是一個有效的正則表示式字面量。

js
new RegExp().toString(); // "/(?:)/"

new RegExp("\n").toString() === "/\\n/"; // true

規範

規範
ECMAScript® 2026 語言規範
# sec-regexp.prototype.tostring

瀏覽器相容性

另見