手机号正则倒退历程
过后思考到运营商只会提供某些号段的手机号,所以正则表达式是上面的样子:
/^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})?$/
原文链接