由于中文,英文,数字在页面中所占的宽度不一样, 所以用length或indexOf不好控制数字的数量,很容易出现长度不统一的情况;
但是每个字Unicode(Unicode 字符代码是一个字母的数字)值是固定的, 据了解,中文是大于128, 数字和用英文在0到128之间; 直接上代码:
let readLength = 0;
let charCode;
for(let i = 0; i < val.length; i++){
charCode = val.charCodeAt(i);
if(charCode >= 0 && charCode <= 128){ // 非中文
readLength += 1;
} else { // 中文
readLength += 2;
}
}
网友评论