JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

【JS 字符长度】获取中英文字符长度

wys521 2025-02-11 13:53:43 精选教程 24 ℃ 0 评论

在日常开发中,会遇见根据字符真实长度进行特殊处理的场景,但中文字符和英文字符长度是不一样的,今天记录一个小方法,可以方便统计一段字符的真实长度


const getChartLength = (str: string) => {
        return [...str].reduce((acc, char) => char.charCodeAt(0) > 127 ? acc + 2 : acc + 1,0);
}

getChartLength('asd') //3
getChartLength('as,') //3
getChartLength('好的') //4
getChartLength('好,') //4
  • es6的字符具有迭代器接口,因此[...str]可以获取一个字符数组
  • 字符编码在127以内可以认为是英文字符
  • 字符编码超过127且小于255的字符属于扩展ASCII字符集,属于一些特殊字符,图形符号和重音节字符,这里可以当做双字节统计


分享两个String的静态方法

  1. String.fromCharCode(num)
  • 根据编码返回特定的字符
  • num为0~0xffff(65535)字符编码
  1. String.fromCodePoint(num)
  • 同fromCharCode方法
  • num为0~0x10ffff(1114111)字符编码
  1. str.charCodeAt(index)
  • index 字符索引
  • 获取给定字符的编码(0~0xffff)
  • 超过0xffff,获取不完整的编码
  1. str.codePointAt(index)
  • index 字符索引
  • 获取完整的编码(0~0x10ffff)


p: 中文字符编码范围 0x4E00-0x9FFF

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表