var re = /^[1-9]\d{4,10}$/gi;
var str = "123456";
console.log(re.test(str));
console.log(re.test(str));
console.log(re.test(str));
输出为true
false
true
why?
结果就是下面大神的回答,
贴个图
var re = /^[1-9]\d{4,10}$/gi;
var str = "123456";
console.log(re.test(str));
console.log(re.test(str));
console.log(re.test(str));
输出为true
false
true
why?
结果就是下面大神的回答,
贴个图
这和正则的匹配位置有关,第一次匹配到了12345,然后第二次从6开始,数字不够匹配为false,然后字符串到最后了,匹配位置又重置,第三次又匹配到了12345。
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答895 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
每个正则表达式都有一个 lastIndex 属性,用于记录上一次匹配结束的位置。