javascript - 为什么连续调用 `pattern.test(name)` 结果相反

标签 javascript regex

<分区>

为什么这段代码先返回true,然后返回false

var pattern = new RegExp("mstea", 'gi'), name = "Amanda Olmstead";

console.log('1', pattern.test(name));
console.log('1', pattern.test(name));

演示:Fiddle

最佳答案

g 用于重复搜索。它将正则表达式对象更改为迭代器。如果您想使用 test 函数根据您的模式检查您的字符串是否有效,请删除此修饰符:

var pattern = new RegExp("mstea", 'i'), name = "Amanda Olmstead";

test 函数,与 replacematch 不同,它不会消耗整个迭代,这让它处于“坏”状态.在使用 test 函数时,您可能不应该使用此修饰符。

关于javascript - 为什么连续调用 `pattern.test(name)` 结果相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15610251/

相关文章:

java - 为什么正则表达式 [^-?0-9]+ 忽略 '?' ?

java - 正则表达式 : filter a character in an expression but not inside the quotation mark

python - 在 python 3.x 中使用正则表达式抓取字符串的一部分

javascript - 带有 JQuery 音频的 HTML5 音频标签

javascript - Iframe 代码不再工作

javascript - Js如何从fetch()获取数据到服务器?

javascript - 如何从javascript中的对象列表中删除重复项

javascript - 即使在 JavaScript 中设置焦点后,Tab 事件也会更改焦点

python - 使正则表达式准确匹配点文件

ruby - 如何更改字符串中的特殊符号?