如何在使用变量时防止正则表达式测试切换
How to prevent regular expression test toggling when using a variable?
我刚刚注意到以下奇怪的行为(在浏览器和nodejs:
> a = /^'/foo/g
/^'/foo/g
> a.test("/foo")
true
> a.test("/foo")
false
> a.test("/foo")
true
> a.test("/foo")
false
> a.test("/foo")
true
我们这里有什么疯狂的科学?如何防止这种行为?
我只想有一个regex变量来检查字符串是否全局匹配模式。
文档页面似乎没有带来一些亮点。。。如果能提供文档参考的链接,我将不胜感激。
在每次测试后将正则表达式的lastIndex设置为0。
a = /^'/foo/g
a.test("/foo"); //true
a.test("/foo"); //false
a.test("/foo"); //true
a.lastIndex = 0; //reset the index to start the next match at beginning
a.test("/foo"); //true
相关文章:
- 从 JavaScript 到 Java 的正则表达式测试
- 使用正则表达式测试字符串中的特定ASCII字符
- 正则表达式测试
- 针对 JavaScript 中的多个正则表达式测试字符串
- 正则表达式测试算法返回 false
- jQuery 正则表达式测试在 .each 错误中
- LxWxH 的正则表达式测试模式
- JavaScript正则表达式测试字符串是否包含特定单词(带变量)
- 如何在使用变量时防止正则表达式测试切换
- 特定正则表达式测试
- 正则表达式测试方法中的“g”如何交替工作
- 正则表达式测试不能正常工作
- 对数字列表进行正则表达式测试
- 正则表达式测试函数不返回相同的引号
- Javascript数字正则表达式测试失败-无法找出原因
- 可以在正则表达式测试器中创建函数,但不能在应用程序中创建
- Javascript正则表达式测试
- Js正则表达式测试除字符串
- Jquery正则表达式测试字符串中的确切单词
- 以重音开头的正则表达式测试