您的位置:首页 > Web前端 > JavaScript

JS正则中test方法

2016-10-24 23:04 225 查看
这个方法经常用于测试是否满足条件, 但是有这种情况可能不是我们想要的:

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标志就好了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  正则 javascript