📜  javascript 获取字符串字节大小 - Javascript (1)

📅  最后修改于: 2023-12-03 15:16:15.434000             🧑  作者: Mango

JavaScript 获取字符串字节大小

在开发中,可能需要对字符串长度进行限制,需要获取字符串的字节大小。

方法一:利用Blob对象的size属性
function getByteSize(str) {
  var blob = new Blob([str]);
  return blob.size;
}

该方法创建了一个Blob对象,将字符串作为Blob的内容传入。由于Blob对象的size属性返回的是字节大小,即可用于获取字符串字节大小。

方法二:利用TextEncoder API
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获取字符串字节大小的方法。在实际开发中,可以根据浏览器支持情况选择不同的方法,以达到最好的性能效果。