← 返回首页
RegExp.prototype.source - JavaScript | MDN

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

RegExp.prototype.source

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

sourceRegExp のアクセサープロパティで、正規表現オブジェクトのソーステキストの入った文字列を返します。これには、両端の 2 つのスラッシュやフラグは含まれません。

目次

試してみましょう

const regex = /fooBar/gi; console.log(regex.source); // 予想される結果: "fooBar" console.log(new RegExp().source); // 予想される結果: "(?:)" console.log(new RegExp("\n").source === "\\n"); // 予想される結果: true (ES5 以降) // Due to escaping

解説

概念的には、source プロパティは正規表現リテラルの 2 つのスラッシュの間のテキストです。この言語では、返される文字列が適切にエスケープされている必要があり、source の両端にスラッシュを連結すると、解析可能な正規表現リテラルが形成されます。例えば、new RegExp("/") の場合、source は \\/ です。これは / を生成し、結果のリテラルは /// です。同様に、改行文字は、改行文字である文字が、正規表現リテラルを分割してしまうため、すべてエスケープされます。結果が解析可能である限り、他にも文字は必要ありません。空文字列の正規表現では (?:) という文字列を返します。

source の使用

js
const regex = /fooBar/gi; console.log(regex.source); // "fooBar", /.../ と "gi" は含まれません。

空の正規表現とエスケープ

js
new RegExp().source; // "(?:)" new RegExp("\n").source === "\\n"; // true。ES5 以降

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-get-regexp.prototype.source

ブラウザーの互換性

ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。

関連情報