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

JavaScriptのmultilineプロパティとは?正規表現の「m」フラグ判定方法を実例付きで解説


JavaScriptのmultilineプロパティは、正規表現オブジェクトに「m」フラグ(複数行モードの修飾子)が設定されているかどうかを判定し、設定されていれば true、されていなければ false を返す読み取り専用のプロパティです。

「m」フラグが有効な場合、「^」(行頭)や「$」(行末)が文字列全体ではなく、改行で区切られた各行の先頭・末尾にマッチするようになります。multilineプロパティを参照すれば、そのフラグが実際に設定されているかをプログラムから簡単に確認できます。

multilineプロパティのサンプルコード

以下は、multilineプロパティの動作を確認できるHTMLのコード例です。

<!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;
      color: red;
   }
</style>
</head>
<body>
<h1>JavaScript RegExp オブジェクト</h1>
<div class="sample">The king bought the ring</div>
<div style="color:black" class="result"></div>
<button class="Btn">CLICK HERE</button>
<h3>上のボタンをクリックすると、「m」修飾子が設定されているかどうかを確認できます</h3>
<script>
   let resultEle = document.querySelector(".result");
   document.querySelector(".Btn").addEventListener("click", () => {
      let pattern = /ing/gm;
      let result = pattern.multiline;
      if(result) resultEle.innerHTML = '"m" 修飾子が設定されています';
      else resultEle.innerHTML = '"m" 修飾子は設定されていません';
   });
</script>
</body>
</html>

実行結果

JavaScriptのmultilineプロパティとは?正規表現の「m」フラグ判定方法を実例付きで解説

「CLICK HERE」ボタンをクリックすると −

JavaScriptのmultilineプロパティとは?正規表現の「m」フラグ判定方法を実例付きで解説

この例では、正規表現 /ing/gm に「m」フラグが含まれているため、multilineプロパティは true を返し、「"m" 修飾子が設定されています」というメッセージが画面に表示されます。

補足:flagsプロパティでの確認方法

ES2015以降では、pattern.flags プロパティで設定済みのフラグ一覧を文字列として取得できるため、pattern.flags.includes('m') のようにして「m」フラグの有無を判定することも可能です。

  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); // パターン文字列のみが返される サンプルコード