我有一个JavaScript函数,可以计算某些文本区域中的字符数。我的功能如下..
function limiting(obj) {
var count = $("#counter > span");
var txt = $(obj).val();
var length = txt.length;
$(cnt).html(length);
}
每当有人在文本区域输入并且它有效时,我都会调用此函数。现在我希望这个功能充当:
例如,如果我们有2个阿拉伯语和3个英文字符,那么计数应该是7,目前它是5.我用谷歌搜索但是找不到任何清楚的东西。感谢
答案 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