JS手机号正则表达式,获取和释放焦点

根据工信部发布的信息目前的手机号的开头:

移动号码包括的号段:134/135/136/137/138/139;
    *                     147/148(物联卡号);
    *                     150/151/152/157/158/159;
    *                     165(虚拟运营商);
    *                     1703/1705/1706(虚拟运营商)、178;
    *                     182/183/184/187/188
    *                     198

    * 联通号段包括:130/131
    *               145
    *               155/156
    *               166/167(虚拟运营商)
    *               1704/1707/1708/1709、171
    *               186/186
    *
    * 电信号段包括: 133
    *                153
    *                162(虚拟运营商)
    *                1700/1701/1702(虚拟运营商)
    *                180/181/189
    *                191/199

首先使用JS(JavaScript)时,使用 RegExp 对象来检索文本内容。
定义一个 RegExp 对象

var reg = new RegExp(); //注意()内写正则表达式--例如:var reg = new RegExp(/^\w+$/);

RegExp 对象有RegExp 对象有 3 个方法:test()、exec() 以及 compile()。

test() 方法检索字符串中的指定值。返回值是 true 或 false。

exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

compile() 方法用于改变 RegExp。
compile() 既可以改变检索模式,也可以添加或删除第二个参数。
具体的用法请参考 :W3school网址详情

手机号的正则表达式确其实网上有很多:
例1:

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

例2:

/^1(3[0-9]|4[5,7]|5[0,1,2,3,5,6,7,8,9]|6[2,5,6,7]|7[0,1,7,8]|8[0-9]|9[1,8,9])\d{8}$/

等等很多方式。
因为手机号这种东西会不断的更新,说不定什么时候“例2”的方式可能就不完全符合要求了。
所以还是建议使用者使用例1这种范围比较宽泛的正则表达式。
当然编程这东西呀,根据开发的要求不同,严谨性和实用性不能一概而定,所以使用哪种方式都可以。

我使用的是比较宽泛的正则。
下面贴出我自己的代码,仅供参考。




亲测可用。
因为我也是刚开始学习正则,所以写的有些简单,之后功力高深了再进行补充吧。

你可能感兴趣的:(html,JavaScript,js)