问题:unicode 找不到合适的正则
字符串视觉长度
使用lodash;
import toarray from 'lodash.toarray';
toarray(str);
unicode视觉长度
在字符串视觉的基础上判断每个元素的length是否大于1来累积;
字节长度
Array.from(str).length
问题举例:有一个字符串可能带表情也可能不带,需要得到除了表情外的长度,‘🌏服务rr服务rr’, ‘🌏服务rr服务rr123’,‘服务rr服务rr’,‘6🌏个😂字👩👩👧👧 跟kkk(*&^%$#@一个🤖’
export const unicodeLength = (str: string) => {
const strArr = toarray(str);
let unicodeNum = 0;
if (strArr.length) {
strArr .forEach((item) => {
if (item.length > 1) unicodeNum += 1;
});
}
return unicodeNum ;
};
参考文章:https://fehey.com/emoji-length
https://zh.javascript.info/unicode