JavaScriptの正規表現について
正規表現についてまとめていきます。
正規表現とは
文字の組み合わせを照合するために用いられるパターンのこと。 正規表現リテラルと呼ばれる、スラッシュで囲ったパターンを使用します。
主な記号
次に具体例として上げるリテラルに使われている記号等です。
| 意味 | |
|---|---|
| ^ | 文字の先頭を表す |
| {3} | 3回繰り返す |
| $ | 文字の最後尾を表す |
| [0-9] | 0から9までの数字 |
| \d | 数字 |
| {1,} | 1回以上繰り返す |
具体例
//電話番号
/^[0-9]{3}-[0-9]{4}-[0-9]{4}$/
以下が直訳です。
「始まりは0~9までの数字が4つ」「ハイフン(-)」「0~9までの数字が4つ」「ハイフン(-)」「0~9までの数字が4つ」
郵便番号の正規表現
//郵便番号
/^\d{3}-\d{4}$/
直訳
「始まりは数字が4つ」「ハイフン(-)」「0~9までの数字が4つ並ぶ」
d = digit (数字、桁)
//メールアドレスの正規表現
/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\.[A-Za-z0-9]{1,}$/
直訳
「AからZ、aからz、0から9のうち1つ」
「AからZ、aからz、0から9、『_』、『.』『-』のうちから好きな数だけ」
「@」
「(2番目と同じ)うちから1文字以上」
「(1番目と同じ)うちから1文字以上」
エスケープ
正規表現の記号としてではなく、普通の記号として読ませること。
エスケープしたい文字の前に\(逆スラッシュ)をおくことで可能。
| 例 | 意味 |
|---|---|
| . | 任意の1文字 |
| . | ピリオド |
例) .1.1 = 0101も3131も当てはまる
\.1\.1 = .1.1
test()メソッドで入力値をチェックする
入力フォームのvalueを受け取って正規表現をテストします。
function check(){
//inputから取ってくる
var address = document.getElementById('email').value;
//正規表現を変数に
var mohan = /^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\.[A-Za-z0-9]{1,}$/;
//text()でチェックかける
if (mohan.test(address)) {
alert("OK");
} else {
alert("間違ったメアドです");
}
}
See the Pen blog - 正規表現 by たまき こう (@ulqvhvox) on CodePen.
参考:
https://javascript.keicode.com/lang/regex.php
https://lab.sonicmoov.com/development/javascript/javascript-regex-sample/