需求,input输入汉字长度不大于10,五个字母等于一个汉字,一个空格等于一个字母。方法如下,input,onkeyup中调用
var checkLength = function(dom) {
var Cn = -1;
var En = -1;
var maxLength = 10;
for(var i = 0; i <= dom.value.length; i++) {
if(Cn == 0 && En == 0){
dom.removeAttribute("maxlength");
}
if(/[\u4e00-\u9fa5]/.test(dom.value[i])) {//判断汉字
Cn += 1;
}
if(/[a-zA-Z]/.test(dom.value[i]) || /\s/.test(dom.value[i])) {//判断英文 空格
En += 1
}
if(En % 5 == 0) {
En = 0;
Cn += 1;
}
if(Cn != 0 && Cn % maxLength == 0) {
dom.value = dom.value.substring(0, i);
dom.setAttribute("maxlength",i);
break;
}
}
}