受け取った値が電話番号の形式かどうかを判定するだけの正規表現
以下の電話番号の形式であれば、trueを返す。
(USの電話番号に倣ったもの。またcountry codeを使う場合、行頭に1を付与する。)
555-555-5555
(555)555-5555
(555) 555-5555
555 555 5555
5555555555
1 555 555 5555
test.js
function telephoneCheck(str) {
var reg = /^(1\s?)?(\(\d{3}\)|\d{3})[\s\-]?\d{3}[\s\-]?\d{4}$/;
return reg.test(str);
}
^ ...文字列の始まりを表す。
\s ...空文字を表す。
? ...直前の1文字またはグループは省略可、を表す。
(1\s?)? ..."1 " または "1"が1つ以上あるかどうかの判定
\d ...数字1文字を表す。
{n}... 直前の文字のn回の繰り返し
\ ...つぎに来る文字または記号を正規表現ではなく、単なる文字として扱いたい場合に使う。
| ...orを表す。
((\d{3}\)|\d{3})... (\d{3}) または d{3}を判定。
[ ] ...[ ]の中のどれか1文字を対象にする
[\s\-]? ...空文字 または - の探索
$... 行末
以上。