`

javascript限制input输入的字节数

阅读更多
由于中文是占用2个字符,而英文是1个字符,如果我们不分区英文和中文,只要是8个字符
那通过input的maxlength属性就可以完成任务。现有的需求是需要限制用户输入的input中的字符数目,4个中文字符,8个英文字符。则需要通过javascript来判断,用户输入的是英文还是中文,最后截取8个字节。
下面是具体的代码:
function WidthCheck(str, maxLen){ 
var w = 0; 
var tempCount = 0;
        //length 获取字数数,不区分汉子和英文
for (var i=0; i<str.value.length; i++) { 
                      //charCodeAt()获取字符串中某一个字符的编码
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;
}   

}

调用函数的方式如下:
<input type="text" id="nickname" class="nickname" value="" placeholder="请输入您的名字"  onkeyup="WidthCheck(this,8);"/>

这样当用户输入超过8个字节,就不可以再输入了。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics