このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
RegExp.prototype.source
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
source はRegExp のアクセサープロパティで、正規表現オブジェクトのソーステキストの入った文字列を返します。これには、両端の 2 つのスラッシュやフラグは含まれません。
In this article
試してみましょう
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 以降仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-get-regexp.prototype.source> |