前提
一箇中文佔兩個字節,一個英文佔一個字節
charCodeAt()方法返回指定位置的字符 Unicode 編碼 (0 - 65535之間的整數)
返回值 <= 255 時,爲英文
返回值 >255時 ,爲中文
實現
默認全部是英文,即該字符串的字節長度即爲字符串的長度,然後判斷 Unicode 編碼,大於255則加一,最後求出的結果變爲字符串自己的長度
function getBytesLength(str) {
var result = str.length;
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) > 255) {
result += 1;
}
}
return result;
}