正则表达式test(),慎用g
来源:互联网 发布:桌面软件下载大全 编辑:程序博客网 时间:2024/05/17 21:51
今天在将这个表达式时,发现了一个问题:
test()检测指定字符串是否存在返回一个布尔值
var reg=/cat/g;
var str='this a cat,this a dog';
document.write(reg.test(s));
document.write(reg.test(str));
按道理两次打印出来都应该是true,true,而最终结果为true,false。
此时我们需要注意啦,在我们定义的正则表达式中后面加上了搜索的方式,g表示全文查找。而且在正则表达式内部有一个lastIndex来记录匹配的位置,第一次调用test()后,那么lastIndex就不再等于0,而是10,当下次在调用该方法的时候,字符串的匹配会从lastIndex位置进行匹配,故最终返回false.所以不要随意添加g.
遇到此种情况后的解决方法:
1.去除g;
2.在第二次使用前,设置reg.lastIndex=0即可。
test()检测指定字符串是否存在返回一个布尔值
var reg=/cat/g;
var str='this a cat,this a dog';
document.write(reg.test(s));
document.write(reg.test(str));
按道理两次打印出来都应该是true,true,而最终结果为true,false。
此时我们需要注意啦,在我们定义的正则表达式中后面加上了搜索的方式,g表示全文查找。而且在正则表达式内部有一个lastIndex来记录匹配的位置,第一次调用test()后,那么lastIndex就不再等于0,而是10,当下次在调用该方法的时候,字符串的匹配会从lastIndex位置进行匹配,故最终返回false.所以不要随意添加g.
遇到此种情况后的解决方法:
1.去除g;
2.在第二次使用前,设置reg.lastIndex=0即可。
0 0
- 正则表达式test(),慎用g
- JavaScript 正则表达式对象RegExp test方法慎用/g
- javascript正则全局匹配g慎用test方法
- 正则表达式,慎用r''
- Android 正则表达式g
- 正则表达式--g
- 正则表达式有无g参数(全局搜索)时,test()结果的差异
- js正则表达式 match exec test,以及g模式的一些知识点
- 关于JS正则表达式中g模式下test出现true/false交替的个人见解
- JS正则表达式 ,reg.test()时,慎重全局查找/.../g属性
- Oracle 10g正则表达式
- Oracle 10g正则表达式
- oracle 10g 正则表达式
- Oracle 10g 正则表达式
- oracle 10G 正则表达式
- Oracle 10G正则表达式
- Oracle 10g 正则表达式
- Oracle 10g 正则表达式
- JVM介绍
- soap和wsdl的理解
- C++中构造函数调用构造函数
- Spark的几个基本概念:Driver和Job,Stage
- 使用VS的生成事件命令行指令将生成的exe,dll文件复制到指定文件夹中
- 正则表达式test(),慎用g
- 关于appium启动报错问题的解决办法
- iOS 友盟集成教程
- Web前端面试指导(十九):CSS样式-如何清除元素浮动?
- 100亿个整数,内存足够,如何找到中位数?内存不足,如何找到中位数?
- Python爬虫Scrapy实践
- 给定两个整形变量的值,将两个值的内容进行交换
- Quartz-job的quartz.properties配置文件说明
- Android事件分发原理全面解析