JS substr 根据字节长度截取字符串

js substr 根据字节长度截取字符串
此方法应该还可以被优化一下
复制代码

/**
 * 根据字节长度截取字符串
 * @param str 字符串
 * @param bytesStart 字节截取起始位置
 * @param bytesLen 字节截取长度
 */
substrByBytes(str, bytesStart, bytesLen) {
  let bytes = 0 // 字节数
  let tmpStrLen = 0
  let finalStartIndex = 0; // 起始位置字符索引
  let finalLen: number; // 结束位置字符长度
  for (let i = 0; i < str.length; i++) {
    if (str.charCodeAt(i) > 255) {
      bytes += 2 // 中文字符增加2个字节
    } else {
      bytes += 1
    }
    if (bytes == bytesStart) {
      finalStartIndex = i + 1;
    }
    if (bytes == (bytesStart + bytesLen)) {
      tmpStrLen = i + 1;
    }

  }
  finalLen = tmpStrLen - finalStartIndex;
  return str.substr(finalStartIndex, finalLen);
}

复制代码

 

posted @   烧机  阅读(110)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示