咱們知道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