网站地图    收藏   

主页 > 前端 > javascript >

js正则表达式容易被忽略的小问题整理

来源:自学PHP网    时间:2014-09-19 14:47 作者: 阅读:

[导读] ...

一、中括号[]里面的特殊字符是不用转义的,例如[/]、[.]、[*]、[?]、[+]都是可以直接匹配对应的字符 . *?+。下面是测试结果:

 

所以,/[d.]/这个正则表达式实际上是匹配数字字符或者字符".",作用等同于/[d.]/

二、match()和exec()的区别

二者的区别主要在于正则表达式在设置了全局标识符g的情况。

如果没有设置全局标识符g,那么调用string.match(regexp)的结果和调用regexp.exec(string)的结果是相同的,

但在设置了全局标识符g时,string.match(regexp)会把所有的匹配都放入结果数组中,regexp.exec(string)的结果则只给出第一个成功的匹配。

而用regexp.lastIndex属性来记录下一次匹配开始的位置。测试如下:

PS:另外要注意的是lastIndex只对exec()和test()方法起作用,string.match(regexp)是不会影响regexp这个正则的lastIndex属性的。

是我从网上收藏了,不过都是精品,专业针对手机号与电话号码进行验证的。

 代码如下 复制代码
function checkPhone(phone)   
{   
//验证电话号码手机号码,包含153,159号段   
if (phone==""){   
alert("电话号码不能为空!");    
return false;   
}   
if (phone != ""){    
var p1 = /^(([0+]d{2,3}-)?(0d{2,3})-)?(d{7,8})(-(d{3,}))?$/;   
var me = false;   
if (p1.test(phone)) me=true;   
if (!me){      
//alert('对不起,www.111cn.net您输入的电话号码有错误。区号和电话号码之间请用-分割');     
return false;   
}   
}  
return true;   
}  

 
手机号码验证

 代码如下 复制代码

String.prototype.isTel = function()
{
    //"兼容格式: 国家代码111cn.net(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(3位)"
    //return (/^(([0+]d{2,3}-)?(0d{2,3})-)?(d{7,8})(-(d{3,}))?$/.test(this.Trim()));
    return (/^(([0+]d{2,3}-)?(0d{2,3})-)(d{7,8})(-(d{3,}))?$/.test(this.Trim()));
}
//验证手机号

String.prototype.isMobile = function() {
return (/^(?:13d|15[89])-?d{5}(d{3}|*{3})$/.test(this.Trim()));
}

电话号验证

 代码如下 复制代码
function CheckNum(){//电话验证
var InputValue=document.gsjbxxBean.dh.value;
   var reg=/^([0-9]|[-])+$/g ;
   var isValid
   isValid=reg.exec(InputValue)
   if (!isValid) {
     return false
   }
   return true
}

检查电话号码

 代码如下 复制代码

function isTel(str){
       var reg=/^([0-9][-])+$/g ;
       if(str.length<7 str.length>18){
        return false;
       }
       else{
         return reg.exec(str);
       }
}

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论