在我的JavaScript中,我试图使用substring()
函数截取文本,这通常可以实现,但不幸的是会切断表情符号。
usaText = "AZ"
splitText = usaText.substring(0,2) //"A�"
splitText = usaText.substring(0,3) //"A"
splitText = usaText.substring(0,4) //"A�"
splitText = usaText.substring(0,5) //"A"
有没有一种方法可以使用子字符串而不会中断表情符号?在我的生产代码中,我通常在大约40个字符处截断,如果它是35或45也无妨。我曾考虑过简单地检查第40个字符是否为数字或介于a-z之间,但如果你得到一个充满表情符号的文本,这种方法就行不通了。我可以通过模式匹配检查最后一个字符是否是“结束”表情符号,但在性能方面似乎也有些奇怪。
我错过了什么吗?在JavaScript所携带的所有膨胀中,难道没有内置的count
将表情符号视为一个吗?
关于将JavaScript字符串拆分为代码点数组?(考虑到“代理对”但不是“字形群集”)的事情:
chrs = Array.from( usaText )
(4) ["A", "", "", "Z"]
0: "A"
1: ""
2: ""
3: "Z"
length: 4
很遗憾,这一个太多了。