一段这样的JavaScript代码,猜猜结果如何?
var i = 0, m = 20, a = [], r = /^\d+$/g;
for(i = 0; i < m; i++){
a.push('' + i);
}
m = a.length;
for(i = 0; i < m; i++){
if(r.test(a[i])){
document.write(a[i] + 'true<br />');
}
else{
document.write(a[i] + 'false<br />');
}
} 也许你期待的结果应该全是true,可是实际结果呢?true和false交替出现,0是true,1是false,2是true,3是false……是不是很怀疑?其实仔细看一下,那个正则表达式多了个全局选项“g”,去掉就好了。
可是为什么有“g”就会出错呢?
原因其实很简单,当一个模式具有全局选项时,和exec一样,每次test都会保留上次匹配的位置——即lastIndex。很显然,当第一次匹配之后,第二次匹配时的lastIndex已经到了字符串末尾,尽管这个时候字符串已经是一个新的字符串了,但是这个lastIndex的位置并没有重新初始化,所以会从末尾开始匹配——当然会匹配失败了。
解决方案有两种:
去掉正则表达式后面的g;
每次完成匹配之后重置模式的lastIndex属性;
使用重置lastIndex的代码:
var i = 0, m = 20, a = [], r = /^\d+$/g;
for(i = 0; i < m; i++){
a.push('' + i);
}
m = a.length;
for(i = 0; i < m; i++){
if(r.test(a[i])){
document.write(a[i] + 'true<br />');
}
else{
document.write(a[i] + 'false<br />');
}
r.lastIndex = 0;
}
分享到:
相关推荐
javascript中正则表达式实现输入内容过滤
javascript中正则表达式及匿名函数相结合的典型应用 通过一个小例子详细说明和介绍了在javascript中如何应用正则表达式,以及在什么时候下可以应用匿名函数。 并介绍了如何将这两种结合在一起。 实例代码简洁清晰,...
JavaScript中正则表达式的实际应用详解 实际工作中,JavaScript正则表达式还是经常用到的。所以这部分的知识是非常重要的。 第一种:字面量语法 var expression=/pattern/flags; 第二种:RegExp构造函数语法 ...
javascript中正则表达式用法详解
北风网讲javascript正则表达式,屏幕录像专家录制的,exe格式直接双击观看,js的正则表达式难吆,有老师边讲边演示可带你快速入门吆。
本文接下来的内容先简要地介绍正则表达式的入门知识,然后以Jakarta-ORO API为例介绍如何使用正则表达式。 一、正则表达式基础知识 我们先从简单的开始。假设你要搜索一个包含字符“cat”的字符串,搜索用的正则...
主要介绍了调试JavaScript中正则表达式中遇到的问题,需要的朋友可以参考下
主要介绍了JavaScript中正则表达式的使用方法,正则表达式是JS进阶学习中的重要知识,本文简述了JS对正则表达式的支持情况,需要的朋友可以参考下
详解javascript中正则表达式,掌握正则表达式的写法,快速提高javascript能力
主要介绍了javascript中正则表达式语法详解,文章通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
javascript常用正则表达式大全,基本覆盖基本需求的正则表达式
主要介绍了javascript中正则表达式反向引用,需要的朋友可以参考下
主要介绍了JavaScript中正则表达式的概念与应用的相关资料,需要的朋友可以参考下
主要介绍了JavaScript中正则表达式使数字、中文或指定字符高亮显示,需要的朋友可以参考下
JavaScript经典正则表达式实战,欢迎下载,11111111111111111111
JavaScript_正则表达式语法.doc
正则表达式(Regular Expression)是一门简单语言的语法规范,是强大、便捷、高效的文本处理工具,它应用在一些方法中,对字符串中的信息实现查找、替换和提取操作 javascript中的正则表达式用RegExp对象表示,有...
JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&正则表达式JavaScript&...
该文档为doc文档,主要是讲解JavaScript中正则表达式的运用和实现。
常用Javascript正则表达式汇总,常用Javascript正则表达式汇总