javascript里怎么判断输入的字符数量
比如说我在js里得到一个textarea里的内容,那么直接.length方法后会得到数量,问题是我现在判断的时候中文为2个字符,英文为一个字符,在一条中英文夹杂的字符串中...
比如说我在js里得到一个textarea里的内容,那么直接.length方法后会得到数量,问题是我现在判断的时候中文为2个字符,英文为一个字符,在一条中英文夹杂的字符串中怎么判断他的长度?请高手写个方法帮我下··
展开
3个回答
展开全部
如果其中有英文、数字、符号等,用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;
}
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;
}
展开全部
String.prototype.len = function() {
return this.replace(/[^\x00-\xff]/g, 'xx').length;
};
alert("abc汉字".length);
alert("abc汉字".len());
return this.replace(/[^\x00-\xff]/g, 'xx').length;
};
alert("abc汉字".length);
alert("abc汉字".len());
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的那种情况好像不会发生,在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 @_@没错吧?
<!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 @_@没错吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询