计算JavaScript中String中的阿拉伯语和英语字符数

时间:2014-02-14 06:52:31

标签: javascript html unicode

我有一个JavaScript函数,可以计算某些文本区域中的字符数。我的功能如下..

function limiting(obj) {
    var count = $("#counter > span");
    var txt = $(obj).val();
    var length = txt.length;
      $(cnt).html(length);
}

每当有人在文本区域输入并且它有效时,我都会调用此函数。现在我希望这个功能充当:

  • 检测阿拉伯字符
  • 为每个阿拉伯字符的计数添加2
  • 为每个英文字符的计数添加1

例如,如果我们有2个阿拉伯语和3个英文字符,那么计数应该是7,目前它是5.我用谷歌搜索但是找不到任何清楚的东西。感谢

1 个答案:

答案 0 :(得分:1)

阿拉伯字符是非ASCII,而英文字符是ASCII。 现在循环遍历字符串,检查字符是否为ASCII。

function isASCII(str) {
return /^[\x00-\x7F]*$/.test(str);
}

if true如果为false,则在计数中加1。

 function countWeight(string){
  var count = 0;
   for (var i = 0; i<string.length; i++){
     if (isASCII(string.charAt(i)))
      count+=1;
     else
      count+=2;
   }
  return count;
 }

你可以这样简单地做到这一点

 function limiting(obj) {
  var cnt= $("#counter > span");
  var txt = $(obj).val();
  var count = 0;
  for (var i = 0; i< txt.length; i++)
   count += /^[\x00-\x7F]*$/.test(txt.charAt(i))?1:2;
  $(cnt).html(count);
 }

<强> TEST

countWeight("asdبي");//returns 7