关于前端:手机号正则表达式

3次阅读

共计 781 个字符,预计需要花费 2 分钟才能阅读完成。

手机号正则倒退历程

过后思考到运营商只会提供某些号段的手机号,所以正则表达式是上面的样子:

/^1([38]\d|5[0-35-9]|7[3678])\d{8}$/

能够看出是用来匹配 13X,18X,15X,17X 这些号段。

随后因为手机号不够用,又新增了 166、198、199 号段的手机号,所以正则表达式也要作相应改良:

/^1([38][0-9]|5[0-35-9]|6[6]|7[0135678]|9[89])\d{8}$/

到当初,手机号段新增令人发指,直逼咱们应用简略粗犷的校验形式:

/^1(3|4|5|6|7|8|9)\d{9}$/

// 或者
/^1[3456789]d{9}$/

当前,如果有了 12X 的手机号,既能够这样写了:

/^\d{11}$/

随着手机号的日益丰盛,咱们放弃了一些谋求,也播种了简略。simple life。

话锋一转,如果要校验国内手机号呢?首先去做个考察:

各国手机号为数不定有多有少。包含香港都和大陆不一样,香港 8 位。
德国为 10 位
日本也十一位
加拿大 和固定电话一样,7 位数
新西兰的通常是 9 位数
英国 11 位
台湾的手机号 10 位
印度十位
阿联酋 7 位
瑞士 10 位
新加坡手机号跟固定电话一样是 8 位
荷兰手机和固定电话都是 10 位
比利时的手机号是 10 位
泰国:9 位数号码
法国的 10 位

看来咱们只能校验一个范畴内的数字了 5 -11 的数字:

/^\d{5,11}$/

那如果又要校验座机号呢?听到这里你可能要说:去他妈的了。不过还是没有忍住去查了一下座机号的形成规定:

(我国的特服电话 1 结尾,一般固话 2 - 9 结尾)
座机号能够有 3 位区号 + 8 位本地号 + 分机号 (1 到 4 位)
或者是 4 位区号 + 7 位本地号 + 分机号 (1 到 4 位)
其中区号 分机号可能是没有的,所以正则:

 /^((([0-9]{3}-)?[0-9]{8})|(([0-9]{4}-)?[0-9]{7}))(-[0-9]{1,4})?$/

原文链接

正文完
 0