今天小伙伴问了一个奇怪的问题,他在使用 RegExp.test()
方法时使用全局匹配时会依次返回 true
和 false
的现象。
比如说:
var t = /#/g
t.test("#")
// true
t.test("#")
// false
t.test("#")
// true
t.test("#")
// false
我一开始以为是他正则写的不对,让他把其它的匹配规则都去掉再试试,结果问题还是依旧。
后来让他把 /g
的 g
去掉试了下发现没问题了。但还是没有怀疑到全局匹配的问题上,以为是他哪里覆写掉了的 test()
方法。让他使用空白页测试,依旧有这样的问题。