关于判断表单输入数据长度的小疑问

来源:百度知道 编辑:UC知道 时间:2024/09/28 17:29:52
我想实现提交表单时对输入的数据长度进行判断,如输入的长度大于40就警告出错,这个长度40是40个汉字,当输入两个

字母或数字时才记作一个汉字,可是当我输入时一个字母或数字也被算作了汉字,这是怎么回事哦,请高手不吝赐教哦,

我用的函数为:
function CheckForm(){
if((document.frm.tt.value == '') || (document.frm.tt.value.length > 40)) {
alert('输入为空或长度超过40个汉字!');
document.frm.tt.focus();
return false;
}
}

JS里面字母、数字、汉字的长度都算1,这就是UNICODE的威力,要实现你的功能,可以利用我下面的lenb函数,此函数按住传统C的方法计算长度,汉字一个算两个,你的程序里面使用lenb(document.frm.tt.value)>80来控制。

我的例子代码如下:

<input type=text onBlur='alert(lenb(this.value));'>
<script type=text/javascript>
function lenb(s){
var n=0,i;
for (i=0;i<s.length;i++) if (s.charCodeAt(i)>255) n++;
return s.length+n;
}
</script>