javascript代码实例教程-javascript 利用正则表达式验证容易出现的小问题

发布时间:2019-02-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-javascript 利用正则表达式验证容易出现的小问题脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 新手一个而已,不足之处还望和各位大神斧正。大笑

今天在练习javascript利用正则表达式验证时遇到了一点问题,就是无法正确匹配,提交表单不成功。当时是这么写的:

<script tyPE="text/javascript">
function Check(){
VAR txtnum=document.getElementById("txtNum").value;
if(txtnum != null && txtnum != undefined &amp;& txtnum != ""){
if(checkValue(txtnum)){
alert("登陆成功");
return true;
}else{
alert("登陆失败");
return false;
}
}
}
function checkValue(txtnum){
var reg=new RegExp("/^[a-z]/d{4}$/");
//var reg=new RegExp("^[a-z]/d{4}$");//当时这样测试也不行
var result=reg.test(txtnum);
return result;
}
</script>

经过查看资料之后发现了一个很容易忽略小地方:

var reg=new RegExp("/^[a-z]/d{4}$/");

错误就在与双引号,应该是:

var reg=new RegExp(/^[a-z]/d{4}$/); 这是用 / 括起来, 或者

var reg=new RegExp("^[a-z]//d{4}$"); 如果使用双引号括起来的话就需要将特殊字符转义,比如这里的 /d 就要转义为 //d

也就是说:"" 与 / 不共存。有 " " 没 / ,有 / 没 "" 。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

我们要想验证字符串是否符合预定要求,可以利用RegExp的test()方法,或者使用字符串的match()方法: 一、match()方法:

这个在java上也有,参数实际上就是一个正则表达式(包括str.replace("xxxx","XXX")方法里面的参数也可以是正则。API手册)

var reg=new RegExp(/^[a-z]/d{4}$/); //开头是字母,后跟4个数字,另外一种书写方式:
result=txtnum.match(reg)

或者:

result=txtnum.match(/^[a-z]/d{4}$/);

不用创建RegExp对象

注意,如果利用Match没有找到匹配值,那么返回null,根据这个特点进行条件判断即可

ps1:我们在w3cshool上看例子时它部分例子是如下这么写的:

var patt1 = new RegExp("W3School");



这里面的正则表达式使用双引号包含的,即格式类似于:"xxxxxxx" ; 还有的是利用反斜杠,即格式类似于:/xxxxxxx/ 样式
建议使用双反斜杠格式,不用双引号包含,因为使用双引号包含需要对正则式子里面的特殊字符再进行转义,很麻烦。
简单的写法就是不用双引号,用 // 包含即可,如:
/^[a-Z]/d{6}/ 这个意思是:以字母开头后跟6位数字,如果使用双引号包含就得这么写:
"^[a-Z]//d{6}" ------特别注意:/d 转义成 //d

PS2: //使用双引号就不要使用反斜杠,使用反斜杠就不要使用双引号,例如上面的


var reg=new RegExp(/^[a-z]/d{4}$/);//开头是字母,后跟4个数字,我们可以使用另外一种书写方式:



var reg=new RegExp("^[a-z]//d{4}$");//注意对反斜杠进行转义


以下这么写是不对的:
var reg=new RegExp("/^[a-z]//d{4}$/"); 或者:
var reg=new RegExp("/^[a-z]/d{4}$/");

综合上述:"" 与 / 不共存。

另外,使用字符串方法match()时,如果不匹配返回null,这时我们利用条件判断语句进行判断即可。


二、test()方法
与字符串match()方法不同的是,test()方法返回值是布尔类型,而match()返回的是匹配出来的值(不匹配返回null)。
例如:test()

var reg=new RegExp(/^/d{4}$/);
var result=reg.test(txtnum);


例如:match()


var reg=new RegExp("^[a-z]//d{1}$");
var result=txtnum.match(reg);//如果你输入的符合规则,那么result的值就是你输入的值,否则就是null
if(result!=null)
return true;
else
return false;


不管以上整理质量如何,我总觉得学习就是一个总结的过程,我们要做到:学习学习。去学习如何学习。

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-javascript 利用正则表达式验证容易出现的小问题全部内容,希望文章能够帮你解决javascript代码实例教程-javascript 利用正则表达式验证容易出现的小问题所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。