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

View in English Always switch to English

RegExp.prototype.global

Baseline 広く利用可能

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

globalRegExp インスタンスのプロパティで、g フラグが正規表現で使われているかどうかを返します。

試してみましょう

const regex1 = /foo/g;

console.log(regex1.global);
// 予想される結果: true

const regex2 = /bar/i;

console.log(regex2.global);
// 予想される結果: false

解説

RegExp.prototype.global は、g フラグが使用された場合は true、そうでない場合は false になります。g フラグは、正規表現が文字列内のすべての可能なマッチに対してテストされるべきであることを示します。 exec() を呼び出すたびに lastIndex プロパティが更新され、次の exec() の呼び出しが次の文字から始まるようになります。

String.prototype.matchAll()String.prototype.replaceAll() のようないくつかのメソッドは、引数が正規表現である場合、それがグローバルであることを検証します。正規表現の [Symbol.match]() および [Symbol.replace]()String.prototype.match()String.prototype.replace() によって呼び出されます)も、正規表現がグローバルである場合に異なる動作をします。

global の設定アクセサーは undefined です。このプロパティを直接変更することはできません。

global の使用

js
const globalRegex = /foo/g;

const str = "fooexamplefoo";
console.log(str.replace(globalRegex, "")); // example

const nonGlobalRegex = /foo/;
console.log(str.replace(nonGlobalRegex, "")); // examplefoo

仕様書

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

ブラウザーの互換性

関連情報