<input>输入框本身是有标签来限制输入文本的长度的,maxlength="5",就代表限制5个字(中文和英文都算一个字),但是通常在显示的中文比英文要大,所以就要求中文限制5个字,英文最好能限制10个字;网上找了不少解决方案,最后自己想了一个JS 来实现:
$('#studentInput').on('input', function (e) {
var $that = $(this),
limit = 10; //定义所需字节数
$that.attr('maxlength',limit);
setTimeout(function(){
var value = $that.val(),
reg = /[\u4e00-\u9fa5]{1}/g,
notReg = /\w{1}/g;
var Cn = value.match(reg);
var En = value.match(notReg);
if(Cn){
limit = limit - (Cn.length*2);
}
if(En){
limit = limit - En.length;
}
if(limit<=0){
var finalLen = value.length+limit;
value = value.substring(0,finalLen);
$that.attr('maxlength',limit);
$that[0].value = value;
}
},0);
});