码迷,mamicode.com
首页 > 移动开发 > 详细

JS利用正则表达式校验手机号

时间:2018-11-29 21:46:48      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:word   validate   ==   ffffff   reg   方式   校验   结果   regexp   

JS利用正则表达式校验手机号

        由于项目需求,需要在前端实现手机号码的校验。当然了,对于基本的格式校验应该放在客户端进行,而不需要再将待校验的手机号发送至服务端,在服务端完成校验,然后将校验结果返回给客户端,客户端根据返回的结果再进行进一步的处理。如此反而复杂化了处理过程。

        其实,处于安全考虑,应该在服务端进行二次校验。以下为在客户端的JS中校验手机号码格式的代码:

源代码

  1.  
    function validatemobile(mobile)
  2.  
    {
  3.  
    if(mobile.length==0)
  4.  
    {
  5.  
    alert(‘请输入手机号码!‘);
  6.  
    document.form1.mobile.focus();
  7.  
    return false;
  8.  
    }
  9.  
    if(mobile.length!=11)
  10.  
    {
  11.  
    alert(‘请输入有效的手机号码!‘);
  12.  
    document.form1.mobile.focus();
  13.  
    return false;
  14.  
    }
  15.  
     
  16.  
    var myreg = /^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,2,3,5-9]))\\d{8}$/;
  17.  
    if(!myreg.test(mobile))
  18.  
    {
  19.  
    alert(‘请输入有效的手机号码!‘);
  20.  
    document.form1.mobile.focus();
  21.  
    return false;
  22.  
    }
  23.  
    }

注:JS中正则表达式的注意事项

        在JS中//之间不需要转义!

       常规的正则表达式的创建可用直接量,即斜杠 “/” 括起来的字符。但在要求参数变化的环境下,RegExp()构造函数是更好的选择:

       var reg1 = /‘\w+‘/g;

       var reg2 = new RegExp(‘\‘\\w+\‘‘,‘g‘);

       对比两种创建方式,RegExp中的第一个参数为要创建的正则字符串,一方面注意,因为不是直接量的表示形式,因此不用斜杠“ / ”括起来了;而是字符串中必须要对引号“ ‘ ”和转义符号“ \ ”进行二次转义。

       此外,无论是直接量还是RegExp()构造函数,都是生成了新的RegExp对象,并将其赋值给变量。

       在《Javascript权威指南》一书中讲到,对于正则表达式的直接量,ECMAscript 3规定在每次它时都会返回同一个RegExp对象,因此用直接量创建的正则表达式的会共享一个实例。直到ECMAScript 5才规定每次返回不同的实例。

       各浏览器中,IE一直遵守 ECMAScript 5中的规定,其他浏览器的较老版本则遵循 ECMAScript 3的规定。因此在实际应用中,采取构造函数创建的方法比较安全,或者在使用lastIndex属性时要记得归0。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

JS利用正则表达式校验手机号

标签:word   validate   ==   ffffff   reg   方式   校验   结果   regexp   

原文地址:https://www.cnblogs.com/shaoye007/p/10040924.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!