手机号的正则表达式

阅读: 4381    发布时间: 2018-01-30 17:13:46

手机号码目前号段主要是以下几种

 * 移动号码段:139、138、137、136、135、134、150、151、152、157、158、159、182、183、187、188、147
 * 联通号码段:130、131、132、136、185、186、145、156
 * 电信号码段:133、153、180、189

针对手机号,我们可以有多种不同的选择

宽松一点的验证

  • 手机号码第一位目前都是1

  • 后面10位全都是数字0-9

  • 正则表达式为 ^1\d{10}$

严格一些的验证

  • 手机号码第一位目前都是1

  • 第二位为3,第三位为0-9

  • 第二位为4,第三位为579

  • 第二位为5,第三位为0-3或5-9

  • 第二位为6,第三位为6

  • 第二位为7,第三位0135678

  • 第二位为8,第三位0-9

  • 第二位为9,第三位89

  • 后8位数字0-9

  • 通过或操作,将上面几种情况结合起来,正则表达式为: ^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$

var patt=/^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/

console.log(patt.test("15699998888"))    //返回true
console.log(patt.test("11199998888"))    //返回false
console.log(patt.test("25677778888"))    //返回false
console.log(patt.test("1234567"))        //返回false


-END-