js代码:
var name = '测试中文';
// 姓名
var nameRgexp =
new RegExp("[a-zA-Z\u4e00-\u9fa5]{2,}","g"
);
console.log(nameRgexp.test(name)); // true
var company = '测试中文';
// 和name一样的值
console.log(nameRgexp.test(company));
// false
问题原因:
这是因为正则reg的g属性,设置的全局匹配。RegExp有一个lastIndex属性,来保存索引开始位置。 上面的问题,第一次调用的lastIndex值为0,到了第二次调用就不是0了
解决方案
第一种方案是将g去掉,关闭全局匹配。第二种就是在每次匹配之前将lastIndex的值设置为0。
来源:https://blog.csdn.net/qq_30100043/article/details/80092012
转载于:https://www.cnblogs.com/init-007/p/11309943.html