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/;
-
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 + (+
-
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];サンプルコード以下が実際のコードです。外側のループで文(