JS正则中test方法

来源:互联网 发布:张家界导游软件app 编辑:程序博客网 时间:2024/05/16 15:46

这个方法经常用于测试是否满足条件, 但是有这种情况可能不是我们想要的:

var re = /a/g;console.log(re.test('a'));console.log(re.test('a'));

感觉很奇怪, 上面代码的结果是true, false, 这不是我们希望的, 按道理讲, 应该都是true才对.
出现这种现象的原因是因为lastIndex, 测试如下

var re = /a/g;console.log(re.test('a'), re.lastIndex);console.log(re.test('a'), re.lastIndex);

lastIndex值分别是1, 0, 也就是说执行第二个test后, lastIndex的值(2)由于已经超出了输入串(‘a’)的长度, 会被重置为0

这样的话, 我们以后就不要在调用test方法时添加g标志就好了.

0 0
原创粉丝点击