js 输入文本计算字节数大小

发布时间 2024-01-05 11:27:09作者: front-gl

1. 输入文本框,超过最大字节数,自动删除

function removeExtraBytes(text, maxByteLength) {
    // const maxByteLength = 10; // 设置最大字节长度为10
      let byteCount = 0;
      for (let i = 0; i < text.length; i++) {
        if ((/[\u4e00-\u9fa5]/.test(text[i]))) {
            byteCount += 2; // UTF-8编码下汉字占两个字节
        } else {
            byteCount++; // ASCII字符或其他特殊字符只占一个字节
        }
        if (byteCount > maxByteLength) {
            return text.slice(0, i); // 返回前面部分的文本内容
        }
      }
      return text; // 如果没有超过最大字节长度则直接返回原始文本
  }

2. 输入文本框,计算实时字节数

// 字符串转成字节数
  function getBytes(params, charMax) {
    var bytes = params.length, i = 0;
    for (; i < bytes; i++) if (params.charCodeAt(i) > 255) bytes++;   // js使用UTF-8编码,汉字占两个字节数
    return bytes;
  }