JS正则为什么exec会返回null, test都返回true了,而exec为null?

JS正则为什么exec会返回null, 先输出test都返回true了,而exec为null?原因如下:

如果正则表达式设置了全局标志,test() 的执行会改变正则表达式   lastIndex属性。连续的执行test()方法,后续的执行将会从 lastIndex 处开始匹配字符串,(exec() 同样改变正则本身的 lastIndex属性值).

所以,如果代码执行test()查询了一次,然后执行exec就是第二次查询了,这时候lastIndex已经改变所以没有查询结果,所以返回null。

所以,一般不要把test()和exec()联用,如果出于测试目的,那么测试后要把test()删掉!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章