当前位置:首页 > JavaScript

js实现getbyte

2026-01-31 13:20:09JavaScript

在JavaScript中获取字符串的字节长度

JavaScript的字符串默认使用UTF-16编码,但实际字节长度会根据不同编码方式而变化。以下是几种获取字节长度的方法:

使用TextEncoder API(现代浏览器支持)

js实现getbyte

function getByteLength(str) {
  return new TextEncoder().encode(str).length;
}
console.log(getByteLength("你好")); // 输出6(UTF-8编码下)

使用Blob对象

js实现getbyte

function getByteLength(str) {
  return new Blob([str]).size;
}
console.log(getByteLength("abc")); // 输出3

手动计算UTF-8字节长度

function getUtf8ByteLength(str) {
  let length = 0;
  for (let i = 0; i < str.length; i++) {
    const code = str.charCodeAt(i);
    if (code <= 0x7f) {
      length += 1;
    } else if (code <= 0x7ff) {
      length += 2;
    } else if (code >= 0xd800 && code <= 0xdbff) {
      // 处理代理对(surrogate pair)
      length += 4;
      i++;
    } else {
      length += 3;
    }
  }
  return length;
}
console.log(getUtf8ByteLength("𝄞")); // 输出4

注意事项

  • TextEncoder默认使用UTF-8编码
  • Blob.size在不同浏览器中可能表现一致
  • 手动计算方法需要处理代理对(surrogate pairs)
  • ASCII字符始终占1个字节
  • 中文在UTF-8中通常占3个字节

以上方法可以根据实际需求选择使用,现代浏览器推荐使用TextEncoder API。

标签: jsgetbyte
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableElem…

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const ch…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前…