我想在Chrome控制台中测试Javascript Regex。然而,我用相同的表达式得到了不同的答案(参见图片)。如果我使用原文进行测试,我可以得到正确的答案。这是什么原因呢?
re = /^[a-z][0-9a-z]*$/g;
console.log(re.test("a34"));
console.log(re.test("a34"));
console.log(re.test("a34"));
console.log(re.test("a34"));
console.log(/^[a-z][0-9a-z]*$/g.test("a23"));
console.log(/^[a-z][0-9a-z]*$/g.test("a23"));
发布于 2018-07-29 05:57:10
直接从docs
当您想知道是否在字符串中找到模式时,请使用
()。test()返回一个布尔值,这与String.prototype.search()方法不同,后者返回索引(如果未找到,则返回-1 )。要获取更多信息(但执行速度较慢),请使用exec()方法(类似于String.prototype.match()方法)。与exec() (或与exec()结合使用)一样,在同一全局正则表达式实例上多次调用测试()将跳过前一次匹配。
https://stackoverflow.com/questions/51575556
复制相似问题