javascript里怎么判断输入的字符数量

比如说我在js里得到一个textarea里的内容,那么直接.length方法后会得到数量,问题是我现在判断的时候中文为2个字符,英文为一个字符,在一条中英文夹杂的字符串中... 比如说我在js里得到一个textarea里的内容,那么直接.length方法后会得到数量,问题是我现在判断的时候中文为2个字符,英文为一个字符,在一条中英文夹杂的字符串中怎么判断他的长度?请高手写个方法帮我下·· 展开
 我来答
wang_hai_jun
2009-09-21 · TA获得超过292个赞
知道小有建树答主
回答量:174
采纳率:100%
帮助的人:138万
展开全部
如果其中有英文、数字、符号等,用alert("1sS#符".length) 方法是极度不准确的。其结果为 5

alert(len("1sS#符")) //英文、数字、符号均为一个字节,汉字为两个。 因此结果为 6

function len(s) {
var l = 0;
var a = s.split("");
for (var i=0;i<a.length;i++) {
if (a[i].charCodeAt(0)<299) {
l++;
} else {
l+=2;
}
}
return l;
}
wcwtitxu
2009-09-21 · TA获得超过456个赞
知道小有建树答主
回答量:195
采纳率:0%
帮助的人:159万
展开全部
String.prototype.len = function() {
return this.replace(/[^\x00-\xff]/g, 'xx').length;
};

alert("abc汉字".length);
alert("abc汉字".len());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skingyang
2009-09-21 · TA获得超过586个赞
知道小有建树答主
回答量:767
采纳率:60%
帮助的人:327万
展开全部
你说的那种情况好像不会发生,在JS中不是你说的中文为2个字符,英文为一个字符处理方式,它都是按1个字符来处理的。我写了例子试过:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
var str = "China中国@60 ";
document.writeln("【" + str + "】长度为:" + str.length);
//-->
</SCRIPT>
</BODY>
</HTML>

结果就是:【China中国@60 】长度为:11 @_@没错吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式