为什么用标志'g'进行regExp测试会返回错误的值?

时间:2018-01-11 07:22:50

标签: javascript regex

当存在'g'标志时,正则表达式的测试函数返回无效值。

示例:

var regExpArh = /(\.rar|\.zip|\.7z)$/gi;
var s = "55.7z";
regExpArh.test(s); // return true
regExpArh.test(s); // return false
regExpArh.test(s); // return true
regExpArh.test(s); // return false

为什么?

1 个答案:

答案 0 :(得分:0)

请参阅this documentation

  

如果正则表达式设置了全局标志,test()将提升正则表达式的lastIndex。随后使用test()将在lastIndex指定的str的子字符串处开始搜索(exec()也将使lastIndex属性前进。)