六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 141|回复: 0

javascript限制input输入的字节数

[复制链接]

升级  46%

100

主题

100

主题

100

主题

举人

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2013-1-29 08:45:47 | 显示全部楼层 |阅读模式
由于中文是占用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个字节,就不可以再输入了。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表