javascript正则表达式匹配双字每次给出不同的结果

时间:2015-06-19 14:23:54

标签: javascript regex

以下是我的浏览器控制台的输出。这个正则表达式检查doubled_words,查找单词的出现(包含1个或多个字母的字符串),后跟空格后跟同一个单词。

var reg=/([A-Za-z\u00C0-\u1FFF\u2800-\uFFFD]+)\s+\1/gi;
undefined
reg.test("sdfs sdsdf")
true
reg.test("sdfs sdsdf")
false

结果是真正的交替时间,为什么这种奇怪的行为?

1 个答案:

答案 0 :(得分:2)

这种行为是由于global标志的使用造成的。删除它

var reg=/([A-Za-z\u00C0-\u1FFF\u2800-\uFFFD]+)\s+\1/;

使用g会导致在对lastIndextest方法的多方调用中记住正则表达式状态(exec值)。

Check this official reference阅读说明部分。