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

【JavaScript】正規表現の後方参照でパターンを再利用してグループを検証する方法

JavaScriptの正規表現では、一度マッチさせたパターンを後方参照(バックリファレンス)を使って再利用できます。これにより、「同じ値が特定の形式で繰り返されているか」といった検証が簡単に行えます。

後方参照の基本

丸括弧 () で囲んだ部分は「キャプチャグループ」となり、その内容は \1\2 のように番号で参照できます。例えば、^(\d+)(\s)\1\2\1$ というパターンは以下のように動作します。

  • (\d+) … 最初の数値をキャプチャ(第1グループ)
  • (\s) … 空白文字をキャプチャ(第2グループ)
  • \1 … 第1グループと同じ数値が再度出現することを要求
  • \2 … 第2グループと同じ空白が再度出現することを要求

サンプルコード

var groupValues1 = "10 10 10";
var groupValues2 = "10 10 10 10";
var groupValues3 = "10 10";
var regularExpression = /^(\d+)(\s)\1\2\1$/;
var isValidGroup1 = regularExpression.test(groupValues1);
var isValidGroup2 = regularExpression.test(groupValues2);
var isValidGroup3 = regularExpression.test(groupValues3);
if(isValidGroup1==true)
    console.log("This is a valid group="+groupValues1);
else
    console.log("This is not a valid group="+groupValues1);
if(isValidGroup2==true)
    console.log("This is a valid group="+groupValues2);
else
    console.log("This is not a valid group="+groupValues2);
if(isValidGroup3==true)
    console.log("This is a valid group="+groupValues3);
else
    console.log("This is not a valid group="+groupValues3);

プログラムの実行方法

上記のプログラムを実行するには、Node.js環境で次のコマンドを使用します。

node fileName.js.

ここでは、ファイル名を demo188.js として保存しています。

実行結果

このパターンは「同じ数値が空白を挟んで3回繰り返される」形式のみに一致します。そのため、3つのうち最初のグループだけが有効と判定されます。

PS C:\Users\Amit\javascript-code> node demo188.js
This is a valid group=10 10 10
This is not a valid group=10 10 10 10
This is not a valid group=10 10

解説

"10 10 10" は「数値・空白・同じ数値・同じ空白・同じ数値」という構造に完全に一致するため有効です。一方、"10 10 10 10" は4回繰り返されており末尾が余分なため、$(行末)の条件を満たせず無効になります。また、"10 10" は繰り返しが2回しかないため一致しません。このように後方参照を活用すると、コードを簡潔に保ちながら厳密なパターン検証が実現できます。

  1. 空のiframeのsrcは有効?about:blankを使った正しい設定方法を解説

    空のiframeのsrcには「about:blank」を使用する HTMLで<iframe>要素のsrc属性を空にしたい場合は、「about:blank」を指定するのが一般的です。src属性を完全に省略してしまうと、ブラウザによっては意図しない動作やセキュリティ上の問題が発生することがあります。そのため、何も表示しないiframeを作成したい場合でも、明示的にabout:blankを設定することをおすすめします。 <iframe src=about:blank></iframe> 実装例 以下に、空のsrcを持つiframeを含む完全なHTMLコードの例を示

  2. JavaScriptで正規表現を使って有効な日付形式(YYYY-MM-DD)を確認する方法

    正規表現による日付形式のチェックJavaScriptで入力された日付がYYYY-MM-DD形式として有効かどうかを確認したい場合は、正規表現(RegExp)を使うのが最もシンプルです。まず、次の正規表現パターンを定義しましょう。const dateFormat = /^\d{4}\-\d{2}\-\d{2}$/;このパターンの意味は以下の通りです。^\d{4} … 文字列の先頭が4桁の数字(年)であること\-\d{2} … ハイフンの後に2桁の数字(月)が続くこと\-\d{2}$ … ハイフンの後に2桁の数字(日)で文字列が終わることコード例<!DOCTYPE html> <