eg.
let regex = /^[0-9a-zA-Z]*$/gm;
regex.test('abc1123');
// 结果为:第一次返回true , 第二次调用返回false
出现的原因:
第一次调用的时候,是从第0位开始匹配,第二次调用是接着上一次匹配的结束位置开始查找。
解决方法:
方法1:每次调用的时候,都将匹配的位置置为0
let regex = /^[0-9a-zA-Z]*$/gm;
regex.lastIndex = 0;
regex.test('abc1123');
方法2:不是必须使用全局匹配模式(g)时,将g去掉就可以了
let regex = /^[0-9a-zA-Z]*$/m;
regex.test('abc1123');