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="请输入您的名字" οnkeyup="WidthCheck(this,8);"/>

这样当用户输入超过8个字节,就不可以再输入了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值