正则g模式下异常

描述:正则g模式下出现true和false交替

正则g模式下异常_第1张图片

原因:正则表达式中加入g,

第一次执行返回第一个匹配结果,lastIndex为最后一个匹配到的位置

再执行返回第二个匹配,依次类推。

如下图,执行第六次的时候,会从上次的lastIndex开始往后匹配,没有匹配到,lastIndex归为0,会重新从首位匹配

正则g模式下异常_第2张图片

解决:

reg.lastIndex = 0; 归零搜索的位置,如下图,每次执行之后,lastIndex重置为0即可

正则g模式下异常_第3张图片

正则g模式下异常_第4张图片

 去掉g模式(在指定规则下,^$已经限制首尾规则下,用g模式是画蛇添足)

正则g模式下异常_第5张图片

直接用正则表达式执行校验,解决思路和第一个方法一致,每次执行完,重置lastIndex

正则g模式下异常_第6张图片

 

你可能感兴趣的:(正则表达式,JavaScript)