请编写一个函数,求一个字符串的字节长度。(一个英文字符占用一个字节,一个中文字符占用两个字节)。用js实现
时间: 2024-04-29 10:20:45 浏览: 298
获取中文字符串长度的函数
以下是用 JavaScript 实现求字符串字节长度的函数:
```javascript
function byteLength(str) {
let len = 0;
for (let i = 0; i < str.length; i++) {
const code = str.charCodeAt(i);
if (code < 0x007f) {
len += 1;
} else if (code >= 0x0080 && code <= 0x07ff) {
len += 2;
} else if (code >= 0x0800 && code <= 0xffff) {
len += 3;
}
}
return len;
}
```
如果输入的字符串只包含英文字母或数字等 ASCII 字符,每个字符占用一个字节;如果输入的字符串包含中文或其他 Unicode 字符,每个中文字符占用两个字节,其他字符占用三个或更多字节。该函数使用字符串的 charCodeAt() 方法获取每个字符的 Unicode 编码,根据编码范围确定每个字符占用的字节数,最终累加得到字符串的字节长度。
注意:该函数只能计算字符串的字节长度,不能计算字符串的实际长度(即字符个数)。如果需要计算字符个数,可以先将字符串转为数组,再使用数组的 length 属性得到长度。
阅读全文