JavaScriptで正規表現の使用方法についてご紹介します。
RegExpオブジェクトの生成方法
-
JavaScriptで正規表現用のRegExpオブジェクト(JavaScriptで正規表現を解析して文字列検索する機能)を生成する方法として「RegExpオブジェクトのコンストラクタを経由する方法」と「正規表現リテラルを利用する方法」の2通りあります。どちらでも正規表現を使用することは出来ますが、記述方法の違いについて認識しておく必要があります。
- RegExpオブジェクトのコンストラクタを経由する方法
- 構文
1var 変数名 = new RegExp('正規表現','オプション'); - 「\」をエスケープする必要があります。
- 構文
- 正規表現リテラルを利用する方法
- 構文
1var 変数名 = /正規表現/オプション; - 「/」をエスケープする必要があります。
- 構文
- オプション
オプション 説明 g 文字列全体に対して検索を行います。 i 大文字、小文字を区別しないで検索します。 m 複数行全て検索します。
正規表現の使用例
-
実際に文字列が正規表現と一致しているかどうかを調べたい場合は「match」メソッドを使用します。
- HTML
12携帯電話番号をハイフン区切りで入力して下さい:<input id="txt1RegexSample" type="text" name="txt1RegexSample"<br /><div id="txt2RegexSample"></div> - JavaScript
123456789101112131415161718192021222324252627jQuery(function($) {jQuery(document).on("change", "#txt1RegexSample", function(){var telNo = document.getElementById("txt1RegexSample").value;if(searchRegex(telNo)) {document.getElementById("txt2RegexSample").innerHTML = "「正しい携帯電話番号です。」";} else {document.getElementById("txt2RegexSample").innerHTML = "「携帯電話番号の入力が正しくありません。」";}});});/**正規表現で文字列検索します。*/function searchRegex(str) {// 携帯電話番号用の正規表現var regex1 = /^(090|080|070)-[0-9]{4}-[0-9]{4}$/gi;// 正規表現で検索if(str.match(regex1)) {// 正規表現と一致return true;} else {// 正規表現と不一致return false;}} - 実行サンプル
携帯電話番号をハイフン区切りで入力して下さい: