input限制中文字数

咱们知道input控件有一个maxlength属性能够控制输入字符的长度,可是,它并不会识别是汉字仍是其余符号,因此输入maxlength个汉字显然是不符合要求的。dom

为了实现对带有汉字的输入框长度控制,参考各位大神的贴子,我总结了一下方案:this

定义js方法:spa

/*限制中英文皆可输入的文本框长度,使用方式参考如下:*/
/*<input type="text" onkeyup="checkLength(this, 10);" />*/
var checkLength = function(dom, maxLength){
    var l = 0;
    for(var i=0; i<dom.value.length; i++) {
        if (/[\u4e00-\u9fa5]/.test(dom.value[i])) {
            l+=2;
        } else {
            l++;
        }
        if (l > maxLength) {
            dom.value = dom.value.substr(0,i);
            break;
        }
    }
};

其中 /[\u4e00-\u9fa5]/ 为匹配汉字的正则。code

达到maxlength时候,输入输入字符将不会在显示。blog

相关文章
相关标签/搜索