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



我有一个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。我已经用谷歌搜索过它,但找不到任何清楚的东西。谢谢

阿拉伯字符是非ASCII,而英语字符是ASCII。现在在一个循环中,遍历你的字符串,检查字符是否是 ASCII。

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

如果为 true,则在计数中加 1,如果为假,则添加 2。

 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);
 }

测试

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

最新更新