This question already has answers here:
Why does a RegExp with global flag give wrong results?

(7个答案)


5年前关闭。




在浏览器控制台中,以下函数的输出是一系列交替的true和false。任何的想法?

函数checkSpecificLanguage(text_val){
//强制输入字符串类型在此处输入代码

var regex = / ^ [\ u3000- \ u303F \ u3040- \ u309F \ u30A0- \ u30FF \ uFF00- \ uFFEF \ u4E00- \ u9FAF \ u2605- \ u2606 \ u2190- \ u2195u203B] + $ / ig;

console.log(text_val +“-” + regex.test(text_val));
console.log(text_val +“-” + regex.test(text_val));
console.log(text_val +“-” + regex.test(text_val));
console.log(text_val +“-” + regex.test(text_val));
console.log(text_val +“-” + regex.test(text_val));

返回regex.test(text_val);
}

checkSpecificLanguage(“でしたコンサート”);

最佳答案

您正在使用全局(g)标志。

根据MDN:



您可以通过设置lastIndex来解决此问题。

10-06 05:25
查看更多