JavaScriptで文字列内の複数の出現箇所を正規表現でマッチさせる方法
文字列内に含まれる複数の出現箇所をすべて抽出・マッチさせるには、正規表現を使用します。ポイントは、正規表現パターンの末尾にグローバルフラグ(g)を付けることです。これにより、最初の1件だけでなく、文字列中のすべての該当箇所を取得できます。
実装コード例
以下の例では、文章の中から「JavaScript」および「typescript」に関連する単語をすべて検出しています。
function checkMultipleOccurrences(sentence) {
var matchExpression = /(JavaScript?[^\s]+)|(typescript?[^\s]+)/g;
return sentence.match(matchExpression);
}
var sentence = "This is my first JavaScript Program which is the subset of typescript";
console.log(sentence);
console.log(checkMultipleOccurrences(sentence));コードのポイント
- 正規表現
/(JavaScript?[^\s]+)|(typescript?[^\s]+)/gの末尾にあるgフラグにより、すべての出現箇所がマッチ対象になります。 [^\s]+は空白以外の文字が1文字以上続く部分にマッチします。String.match()メソッドは、マッチした文字列を配列として返します。
プログラムの実行方法
上記のプログラムを実行するには、Node.js環境で次のコマンドを使用します。
node fileName.js
ここでは、ファイル名を「demo70.js」として保存した場合の例を示します。
実行結果(出力)
プログラムを実行すると、以下のような出力が得られます。
PS C:\Users\Amit\JavaScript-code> node demo70.js This is my first JavaScript Program which is the subset of typescript [ 'JavaScript', 'typescript' ]
このように、g フラグ付きの正規表現と match() を組み合わせることで、文中に複数回登場するキーワードを簡単に配列として抽出できることが確認できました。
-
JavaScriptで複数ステップのフォームを作成する方法|入力チェック付きマルチステップフォームの実装例
ユーザー登録やアンケートなど、入力項目が多いフォームでは、すべての項目を1画面に詰め込むとユーザーの負担が大きくなり、離脱の原因にもなります。そこで有効なのが、フォームを複数のステップ(ページ)に分割して表示する「マルチステップフォーム」です。 本記事では、JavaScriptを使って「次へ」「戻る」ボタンでステップを切り替えられるフォームを作成する方法を紹介します。さらに、各ステップごとの入力チェック(バリデーション)や、進行状況を示すインジケーター(ドット表示)の実装方法も合わせて解説します。 コード例 <!DOCTYPE html> <html> <meta
-
JavaScriptで数値と文字数が一致する文字列を検証する方法
問題文字列 str を引数として受け取るJavaScript関数を作成することを考えます。この関数は、文字列内の英字部分を、その直前にある数字に基づいて検証する必要があります。具体的には、文字列を数字で分割し、各数字とそれに続く部分文字列の文字数を比較します。すべての組み合わせが一致していれば、その文字列は有効であるとして true を返し、一箇所でも不一致があれば false を返します。例えば、以下のような文字列を見てみましょう。5hello4from2meこの文字列に対しては、true を返す必要があります。なぜなら、数字で分割すると「hello」「from」「me」という3つの部分文字