js 解决字符串中包含表情特殊字符按字节数限制截取;

需求背景如下:
群发朋友圈的网页title需要 限制64字节;
formatterTitle(bytes: number, title: string): string {
    let len = 0;// 字节数
    let str = '';// 处理的title
    // 由于特殊字符以及表情会占两个字符;导致截取字符时会断开出现乱码,采用for of,或[...title]可解决;
    for (let strItem of title) {
      let pointNum = strItem.codePointAt(0) ?? 0;
      len += (pointNum > 0xFFFF) ? 4 : (pointNum > 255 ? 3 : 1);
      if (len <= bytes) {
        str += strItem;
      }
    }
    if (len > bytes) {
      str += '...';
    }
    return str;
  }
posted @ 2022-06-09 10:37  ____chen  阅读(453)  评论(0编辑  收藏  举报