Javascriptで正規表現のまとめ【応用編】
ここでは実際のケースで使えそうなものをまとめる。 メールアドレス 定義 アカウント名@ドメイン名 .+@.+ アカウント名の先頭は半角英数字 ^[a-zA-Z0-9] アカウント名のに文字目以降は半角英数字または.-_のいづれか 1文字のみの場合も考慮して*をつける [a-zA-Z0-9.-_]* ドメイン名の先頭は半角英数字 [a-zA-Z0-9] ドメイン名のに文字目以降は半角英数字または.-_のいづれか [a-zA-Z0-9.-_]+ ドメイン名は必ず.を含め、かつ.で終わらない [a-zA-Z0-9][a-zA-Z0-9\.-_]+\.[a-zA-Z]{2,}$ これを組み合わせると、 var regexp = /^[a-zA-Z0-9][a-zA-Z0-9\.-_]*@[a-zA-Z0-9][a-zA-Z0-9\.-_]+\.[a-zA-Z]{2,}$/; console.log(regexp.test(‘hoge@fuga.com’)) console.log(regexp.test(‘@fuga.com’)) console.log(regexp.test(‘_h.o.g.e@f-uga.com’)) console.log(regexp.test(‘ho._gr..e@fuga.com’)) console.log(regexp.test(‘ho._gr..e@fuga’)) console.log(regexp.test(‘ho._gr..e@fuga.hoge.jp’)) ただし! メルアドについて完璧な正規表現は無いと言われている。 html5のinput[type=email]でさえ、電子メールの構文を定義するRFC5322対して意図的に違反する仕様となっている。つまり、無理ゲーってこと。 ちなみにHMTL5のinput[type=email]で動くバリデーションはこう。 ^[a-zA-Z0-9\.!#$%&’*+/=?^_'{|}~-]+@[a-zA-Z0-9]+(?:\.[a-zA-Z0-9-]+)*$ 実務では、HMTL5準拠のバリデーションてことで上に従えばよさそうかな。 電話番号 条件 0から始まり、10-11桁 ^0\d[9,10]$ なので、 var regexp = /^0\d{9,10}$/; console.log(regexp.test(‘09088883333’)); console.log(regexp.test(‘79088883333’)); ハイフンを含める場合は、 var regexp = /^0\d{1,3}-\d{3,4}-\d{3,4}$/; console.log(regexp.test(‘79088883333’)); console.log(regexp.test(‘090-8888-3333’)); URL http, httpsで始まる :// […]