(同一个正则表达式设置了全局标志(如 g),并循环使用test方法),导致匹配相同值却返回结果不一样

(同一个正则表达式设置了全局标志(如 g),并循环使用test方法),导致匹配相同值却返回结果不一样!

正则表达式的 lastIndex 属性。每次执行 test 方法时,如果正则表达式设置了全局标志,test 方法会改变正则表达式的> lastIndex 属性。连续执行 test() 方法时,后续的执行将会从 lastIndex 处开始匹配字符串,而不是每次都从字符串的开始位置匹配。

解决方法

三种方式:

描述
不使用全局标志:如果不需要全局匹配,就不要在正则表达式中使用 g 标志,这样可以避免 lastIndex 属性的影响 不使用 'g'
重置 lastIndex:在每次使用 test 方法之前,手动将正则表达式的 lastIndex 属性重置为0。这样可以确保每次匹配都是从字符串的开始位置进行 reg.lastIndex =0
每次创建新的正则表达式对象:在循环中,每次匹配时都创建一个新的正则表达式对象,这样可以避免 lastIndex 属性的影响 new RegExp()
相关推荐
Jerry_Gao92110 小时前
【CTF】【ez-rce】无字母数字绕过正则表达式
正则表达式·php·ctf
烤麻辣烫1 天前
正则表达式快速掌握
前端·javascript·学习·正则表达式·html
jz_ddk4 天前
[指南] UltraEdit正则表达式完全指南
正则表达式·ultraedit
爱上妖精的尾巴8 天前
8-10 WPS JSA 正则表达式:贪婪匹配
服务器·前端·javascript·正则表达式·wps·jsa
观无10 天前
正则表达式原理
服务器·数据库·正则表达式
怣5011 天前
MySQL正则表达式模糊查询完全指南:让数据查找更智能
数据库·mysql·正则表达式
禹凕11 天前
Python编程——进阶知识(正则表达式)
python·mysql·正则表达式
怣5012 天前
[零基础]MySQL正则表达式完全零基础入门:从“这什么鬼“到“真香!“
数据库·mysql·正则表达式
逝水如流年轻往返染尘15 天前
正则表达式字符串
java·正则表达式
AI_567818 天前
Python正则表达式终极指南:从模式匹配到文本工程的智能跃迁
人工智能·python·正则表达式