您的位置:首页 > Web前端 > JavaScript

用JS判断输入的最大数(一个汉字为二个单位、一个英文字母为一个单位)

2011-01-18 10:04 316 查看
虽然HTML的文本框自代一个验证最大值的函数maxlength,但这家伙不顶用,一个汉字和一个英文字母都是一个单位,这样显然不对。以下是解决方案

/////////////////////////////////////////////////////////////////////
// 判断长度是否合格
//
// 引数 s 传入的字符串
// n 限制的长度n以下
//
// 返回值 false NG
// true OK
/////////////////////////////////////////////////////////////////////
function WidthCheck(s, n){
var w = 0;
for (var i=0; i<s.length; i++) {
var c = s.charCodeAt(i);
//单字节加1
if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
w++;
}
else {
w+=2;
}
}
if (w > n) {
return false;
}
return true;
}


以下是我自己衍生出的验证输入个数的东东:

<input type="text" size="16" name="num" id="num" onChange="WidthCheck(this,5);"/>

function WidthCheck(str, maxLen){

var w = 0;
var tempCount = 0;
for (var i=0; i<str.value.length; i++) {
var c = str.value.charCodeAt(i);
//单字节加1
if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
w++;

}else {
w+=2;

}

if (w > maxLen) {
str.value = str.value.substr(0,i);
break;
}
}
}

出处http://youaremyrice.blog.51cto.com/293941/58316
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐