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

JavaScriptの正規表現で改行以外の任意の文字にマッチさせる方法

JavaScriptの正規表現において、改行以外の任意の1文字を検索したい場合は、メタ文字「.」(ピリオド)を使用します。ピリオドは、改行文字(\n や \r など)を除くあらゆる1文字にマッチする特別な記号です。

サンプルコード

以下のコードでは、正規表現 /p.o/g を使って、「p」で始まり、任意の1文字を挟んで「o」で終わるパターン(例:pro)を文字列からすべて検索しています。

<html>
<head>
  <title>JavaScript Regular Expression</title>
</head>
<body>
  <script>
    var myStr = "We provide websites! We provide content!";
    var reg = /p.o/g;
    var match = myStr.match(reg);

    document.write(match);
  </script>
</body>
</html>

実行結果

このコードを実行すると、「provide」という単語の中にある「pro」が2箇所でマッチし、次のように出力されます。

pro,pro

ポイント解説

  • /p.o/g の「.」は、改行以外の任意の1文字を表します。
  • 末尾の「g」フラグを付けることで、文字列内のすべてのマッチを取得できます。
  • .」は改行文字にはマッチしないため、複数行にまたがるテキストを扱う際は注意が必要です。

改行も含めてマッチさせたい場合

もし改行文字にもマッチさせたい場合は、s フラグ(dotAllフラグ/ES2018以降)を使用するか、文字クラス [\s\S] を代わりに使う方法があります。

// sフラグを使用(ES2018以降)
var reg = /p.o/s;

// 文字クラスを使用(環境を選ばない方法)
var reg = /p[\s\S]o/;
  1. JavaScriptでHH:MM:SS形式の時刻を秒に変換する方法

    HH:MM:SSを秒に変換する基本的な考え方JavaScriptで「HH:MM:SS」形式の時刻文字列を合計秒数に変換するには、以下の計算を行います。時間(Hour)× 60 × 60(=3600倍)分(Minute)× 60秒(Second)はそのまま加算これらをすべて足し合わせることで、時刻全体の総秒数を求めることができます。コード例var time = 10:8:20;var actualTime = time.split(:);console.log(The time= + time);var totalSeconds = (+actualTime[0]) * 60 * 60 + (+

  2. JavaScriptのincludes()メソッドで配列内の特定の単語を検索する方法

    配列の中から特定の単語を見つけたい場合は、includes()メソッドを使うのが最も手軽です。まず、次のような文章を要素として持つ配列を用意します。var sentence = [My Name is John Smith. My Favourite Subject is JavaScript. I live in US. I like Hockey];続いて、上記の「sentence」配列の中から検索したいキーワードをまとめた配列を定義します。var keywords = [John, AUS, JavaScript, Hockey];サンプルコード以下が実際のコードです。外側のループで文(