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.
toString()
は RegExp
インスタンスのメソッドで、は正規表現を表す文字列を返します。
試してみましょう
構文
toString()
引数
なし。
返値
呼び出し元のオブジェクトを表す文字列です。
解説
RegExp
オブジェクトの toString()
メソッドは、 Object
オブジェクトのものを上書きします。つまり Object.prototype.toString()
を継承しません。 RegExp
オブジェクトにおける toString()
メソッドは、その正規表現オブジェクトを表す文字列を返します。
実際には、正規表現の source
と flags
プロパティを読み、 /source/flags
形式の文字列を返します。 toString()
の返値は解釈可能な正規表現リテラルであることが保証されますが、元々正規表現に指定されていたものと全く同じテキストではない可能性があります (例えば、フラグの並び順が変更されている可能性があります)。
例
toString() の使用
以下の例は RegExp
オブジェクトの文字列の値を表示します。
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
のような改行文字はエスケープされます。これにより、返値は常に有効な正規表現リテラルになります。
new RegExp().toString(); // "/(?:)/"
new RegExp("\n").toString() === "/\\n/"; // true
仕様書
Specification |
---|
ECMAScript Language Specification # sec-regexp.prototype.tostring |
ブラウザーの互換性
BCD tables only load in the browser