Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
Since September 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
修飾子は、正規表現の特定の部分のフラグ設定を上書きします。これは、特定の正規表現構文要素の意味を変更するフラグを有効または無効にするために使用できます。これらのフラグは i, m, s です。
メモ: JavaScript には、パターンが修飾子グループの中に置かれる「境界付き」の修飾子形式しかありません。修飾子に対応している他のほとんどの言語には、「境界なし」の形式があり、この形式では、修飾子は最も近い包含グループが終わるまで適用されます。
有効にするフラグの文字列です。 i、m、s を任意に組み合わせて含まれています。
flags2 省略可無効にするフラグの文字列です。i、m、s を任意に組み合わせることができますが、 flags1 に含まれるフラグは含めることはできません。
pattern論理和を含む、正規表現リテラルで使用できる何らかの文字で構成されるパターンです。
一部のフラグは、正規表現の構文要素の意味を変更します。
これらの変更を正規表現パターンの特定の部分でのみ効果にしたい場合があります。その場合は、その部分を修飾子で囲みます。例えば、次のようにします。
この正規表現では、 i フラグはパターンの Hello 部分に対してのみ有効です。 world 部分は大文字と小文字が区別されます。したがって、 Hello world、hello world、HELLO world には一致しますが、 HELLO WORLD には一致しません。 i フラグをグローバルに有効にして、 world 部分に対して無効にすることで、次の式と同等になります。
flags1 および flags2 引数には、i、m、s を任意に組み合わせて含めることができます。ただし、 flags1 と flags2 では、フラグはすべて固有のものである必要があります。つまり、フラグを 2 回有効または無効にしたり、フラグを有効にしてすぐに無効にしたりすることはできません。
引数 flags1 および flags2 はオプションですが、少なくとも 1 つは空ではない必要があります。 (?flags1-:pattern) は、フラグのみを有効にする修飾子です((?flags1:pattern) と同じです)。 (?-flags2:pattern) は、フラグのみを無効にする修飾子です。 (?:pattern) は単なる非キャプチャグループとなり、 (?-:pattern) は構文エラーとなります。
それ以外のフラグはこの修飾子では意味を成さないため、記載すると構文エラーになります。
以下の正規表現は、複数行の文字列の書式を定義します。最初の ^ は、(?-m:) 修飾子の中に含まれているため、入力文字列全体の先頭を表しますが、それ以外の ^ 文字はすべて行の先頭を表します。
foo または bar という変数宣言をすべて探しているとします(これらは不適切な名前だからです)。この単語は、大文字でも小文字でも現れますが、キーワードは常に小文字であることがわかっているため、次のようにすることができます。
| ECMAScript® 2027 Language Specification # prod-RegularExpressionModifiers |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年6月10日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.