I know how to detect arabic characters in a string.
var arabic = /[\u0600-\u06FF]/;
var string = 'عربية';
var flag = arabic.test(string); // flag is true in this case
I am wondering how to detect total number of arabic characters in a string ?
I know how to detect arabic characters in a string.
var arabic = /[\u0600-\u06FF]/;
var string = 'عربية';
var flag = arabic.test(string); // flag is true in this case
I am wondering how to detect total number of arabic characters in a string ?
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;
If performance is important you could also do a loop:
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;
}
On some quick JSPerf tests the loop version performs about 30 times better on short strings and 10 times better on long strings (7000 characters). Varying between browsers.
You can do it like this:
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;
}
Here is fiddle : http://jsfiddle.net/Goodluck/Gt64t/