JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのglobalプロパティとは?正規表現の「g」修飾子の有無を判定する方法

JavaScriptのglobalプロパティとは

JavaScriptのglobalプロパティは、正規表現(RegExp)オブジェクトに「g(グローバル)」修飾子が設定されているかどうかを判定し、設定されていればtrue、されていなければfalseを返す真偽値のプロパティです。

「g」修飾子が付いた正規表現は、文字列内の最初の一箇所だけでなく、一致するすべての箇所に対してマッチングを行います。globalプロパティを使えば、その設定が有効になっているかを実行時に確認できます。以下のコード例を見てみましょう。

コード例

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
    body {
        font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    }
    .sample,.result {
        font-size: 18px;
        font-weight: 500;
    }
</style>
</head>
<body>
<h1>JavaScript global プロパティ</h1>
<div class="sample">Some random text inside a div<br></div>
<div style="color:red" class="result"></div>
<button class="Btn">CLICK HERE</button>
<h3>
上のボタンをクリックすると、「g」修飾子が設定されているかどうかを確認できます
</h3>
<script>
    let sampleEle = document.querySelector(".result");
    let pattern = /random/g;
    let result = pattern.global;
    document.querySelector(".Btn").addEventListener("click", () => {
        if(result) sampleEle.innerHTML += 'The g modifier has been set';
        else sampleEle.innerHTML += 'The g modifier has not been set';
    });
</script>
</body>
</html>

実行結果

JavaScriptのglobalプロパティとは?正規表現の「g」修飾子の有無を判定する方法

ページを開いた直後の初期表示です。ここで「CLICK HERE」ボタンをクリックすると、以下のように判定結果が表示されます。

JavaScriptのglobalプロパティとは?正規表現の「g」修飾子の有無を判定する方法

この例では、正規表現/random/gに「g」修飾子が設定されているため、pattern.globaltrueを返し、「The g modifier has been set」というメッセージが出力されます。もし「g」修飾子を外した場合(例:/random/)は、falseが返され、「The g modifier has not been set」と表示されます。

まとめ

globalプロパティを活用すれば、動的に生成された正規表現でも「g」修飾子の有無を簡単に確認でき、フラグの状態に応じた柔軟な処理を実装できます。類似のプロパティとして、大文字・小文字の区別を判定するignoreCaseや、複数行モードを判定するmultilineなどもありますので、あわせて覚えておくと便利です。

  1. JavaScriptのlastIndexプロパティとは?正規表現のマッチ位置を取得する方法

    lastIndexプロパティとは JavaScriptにおける「lastIndex」プロパティは、正規表現オブジェクトが持つプロパティの一つで、直前のマッチが終了した位置(インデックス)を返します。そして、次回の検索はその位置から再開されるという仕組みになっています。 重要な注意点として、lastIndexプロパティは「g」(グローバル)フラグが設定されている場合にのみ機能します。「g」フラグがない状態では、lastIndexは常に0のまま変化しないため、連続した検索を行うことができません。 以下は、JavaScriptでlastIndexプロパティを使用する際のコード例です。 サンプルコード

  2. JavaScriptのsourceプロパティとは?正規表現パターンテキストを取得する方法を解説

    JavaScriptのsourceプロパティは、RegExp(正規表現)オブジェクトに設定されたパターン文字列そのものを返すプロパティです。g(グローバルマッチ)やi(大文字・小文字を区別しない)などのフラグは結果に含まれず、マッチング対象となる純粋な正規表現テキストのみを取得できます。 動的に正規表現を組み立てたい場合や、デバッグ時に実際に適用されているパターンを確認したい場合などに活用できる便利なプロパティです。 基本構文 const regex = /pattern/flags; console.log(regex.source); // パターン文字列のみが返される サンプルコード