利用encodeURI和decodeURI函数计算中英文混合字符串的长度
- 使用encodeURI函数将字符串进行编码
- 使用decodeURI函数将编码后的字符串进行解码,得到经过编码后的实际长度。
- 实际字符串长度即为中英文混合字符串的长度
function getStrLength(str) {
var encodeStr = encodeURI(str);
// 利用编码后的字符串长度减去编码前的长度
var len = encodeStr.length - (encodeStr.split('%').length - 1) * 2;
return len
}
var str1 = 'Hello, 世界!';
var str2 = 'JavaScript从入门到放弃';
console.log(getStrLength(str1)); // 13
console.log(getStrLength(str2)); // 29
- 需要注意的是,由于使用encodeURI和decodeURI函数进行字符串编解码时,会将所有的非英文字符都进行编码转换,因此实际计算的长度可能会略有不准。