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

来源:百度知道 编辑:UC知道 时间:2024/09/21 11:20:07
比如说我在js里得到一个textarea里的内容,那么直接.length方法后会得到数量,问题是我现在判断的时候中文为2个字符,英文为一个字符,在一条中英文夹杂的字符串中怎么判断他的长度?请高手写个方法帮我下··

如果其中有英文、数字、符号等,用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;
}

String.prototype.len = function() {
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="K