JS正则表达式中的匹配问题


前几天遇到个匹配ip地址的正则表达式问题,如下图JS正则表达式中的匹配问题

图中变量re就是变量ip的正则表达式,但为什么同样的匹配为什么结果却是一下true一下false呢?

lastIndex

看了正则表达式的一些方法,发现有个lastIndex,它表示下次匹配从字符串的第几个字符开始,初始值是0;当我用了全局g的时候。如果匹配成功,则lastIndex变成匹配字符串后面的位置,如果没有匹配成功,则lastIndex重置为0;lastIndex是正则对象的属性,不关心字符串是否是同一个,所以即使匹配的字符串在变,lastIndex也不会清零。如下图JS正则表达式中的匹配问题

问题解决

最后我把全局g去掉的话,如下图JS正则表达式中的匹配问题

解决了,感谢阅读


发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>