📅  最后修改于: 2023-12-03 15:16:15.434000             🧑  作者: Mango
在开发中,可能需要对字符串长度进行限制,需要获取字符串的字节大小。
function getByteSize(str) {
var blob = new Blob([str]);
return blob.size;
}
该方法创建了一个Blob对象,将字符串作为Blob的内容传入。由于Blob对象的size属性返回的是字节大小,即可用于获取字符串字节大小。
function getByteSize(str) {
if (typeof TextEncoder !== "undefined") {
return new TextEncoder().encode(str).length;
}
var len = 0;
for (var i = 0; i < str.length; i++) {
var code = str.charCodeAt(i);
if (code <= 0x007f) {
len += 1;
} else if (code <= 0x07ff) {
len += 2;
} else if (code >= 0xd800 && code <= 0xdfff) {
i++;
len += 4;
} else {
len += 3;
}
}
return len;
}
该方法判断了浏览器是否支持TextEncoder API,如果支持,则使用该API进行编码,并返回编码后的字节数。如果不支持,则通过循环遍历字符串,计算每个字符的字节数来获取字符串字节大小。
以上就是两种JavaScript获取字符串字节大小的方法。在实际开发中,可以根据浏览器支持情况选择不同的方法,以达到最好的性能效果。