当前位置 博文首页 > q1424966670的博客:正则g模式下异常
描述:正则g模式下出现true和false交替
原因:正则表达式中加入g,
第一次执行返回第一个匹配结果,lastIndex为最后一个匹配到的位置
再执行返回第二个匹配,依次类推。
如下图,执行第六次的时候,会从上次的lastIndex开始往后匹配,没有匹配到,lastIndex归为0,会重新从首位匹配
解决:
reg.lastIndex = 0; 归零搜索的位置,如下图,每次执行之后,lastIndex重置为0即可
?去掉g模式(在指定规则下,^$已经限制首尾规则下,用g模式是画蛇添足)
直接用正则表达式执行校验,解决思路和第一个方法一致,每次执行完,重置lastIndex
?
cs