突发奇想
在存储的时候,一个汉字站2Byte,一个英文字母为1Byte
在input
的maxlength
能不能也实现相同的效果呢
https://jsfiddle.net/bumfo/opyfmc4z/1/
function getLength(str) {
return str.replace(/[^ -~]/g, 'AA').length;
}
function limitMaxLength(str, maxLength) {
var result = [];
for (var i = 0; i < maxLength; i++) {
var char = str[i]
if (/[^ -~]/.test(char))
maxLength--;
result.push(char);
}
return result.join('');
}
var maxLength; // how many bytes you want
function onInput() {
if (getLength(this.value) > maxLength)
this.value = limitMaxLength(this.value, maxLength);
}