我知道如何检测字符串中的阿拉伯字符。
var arabic = /[\u0600-\u06FF]/;
var string = 'عربية';
var flag = arabic.test(string); // flag is true in this case
我想知道如何检测字符串中的阿拉伯字符总数?
答案 0 :(得分:2)
var arabic = /[\u0600-\u06FF]/g, // <--- g=Match global (all)
string = 'مرحبا';
count = string.split(arabic).length - 1);
// Or
var match = string.match(arabic);
count = match ? match.length : 0;
如果表现很重要,你也可以做一个循环:
function count(string){
var char, i, len = string.length, count = 0;
for (i = 0; i < len; ++i)
if ((char = string.charCodeAt(i)) >= 0x600 && char <= 0x6ff)
++count;
return count;
}
在一些快速的JSPerf测试中,循环版本在短字符串上执行 30倍 , 在短字符串上执行 >长字符串(7000个字符)。在浏览器之间变化。
答案 1 :(得分:0)
你可以这样做:
var string = 'ربية';
function isArabic(char){
var pattern = new RegExp(/[\u0600-\u06FF]/);
return pattern.test(char);
}
function count(string){
var count = 0;
for (var i = 0; i< string.length; i++){
if (isArabic(string.charAt(i))){
count++;
};
};
return count;
}