input限制中文字數


我們知道input控件有一個maxlength屬性可以控制輸入字符的長度,但是,它並不會識別是漢字還是其他符號,所以輸入maxlength個漢字顯然是不符合要求的。

為了實現對帶有漢字的輸入框長度控制,參考各位大神的貼子,我總結了一下方案:

定義js方法:

/*限制中英文皆可輸入的文本框長度,使用方式參考以下:*/
/*<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]/ 為匹配漢字的正則。

達到maxlength時候,輸入輸入字符將不會在顯示。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM