一、中括号[]里面的特殊字符是不用转义的,例如[/]、[.]、[*]、[?]、[+]都是可以直接匹配对应的字符 . *?+。下面是测试结果:
所以,/[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);
}
}
|
|