欢迎大家来到IT世界,在知识的湖畔探索吧!
处理串字符长度的场景比较常见,对于码点在0x0000-0xFFFF(0-65535)范围的字符,直接使用字符属性length即可,一旦码点大于0xFFFF, js会将这些字符当做双字符来处理。这是因为js是使用utf-16来存储和处理数据,码点大于0xFFFF之后字符属于双码元,会当做双字符来处理。因此我们在处理文本字符长度时需要小心处理。这里分享两个方法:
- Array.from
const a = '' Array.from(a).length
欢迎大家来到IT世界,在知识的湖畔探索吧!
- 扩展运算符 …
欢迎大家来到IT世界,在知识的湖畔探索吧!const a = '' [...a].length
大码点字符两个方法
- str.codePointAt() 获取字符码点
- String.fromCodePoint(码点) 通过码点获取字符
常规字符的两个方法
- str.charCodeAt() 获取字符码点
- String.fromCharCode(码点) 获取字符
PS: 如果业务场景中会出现大码点字符串(大于65535),一定要特定小心,最好使用上述两个方法转成数组之后在操作,不然容易会出现一些未知问题
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/102988.html