我有一个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