如何解决JavaScript子字符串,不分割表情符号?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (68)

在我的js我试图发substring()短信通常有效,但不幸的是斩首表情符号

usaText = "A🇺🇸Z"
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个字符是数字还是在az之间但是如果你有文字则不行充满了表情符号。我可以检查最后一个字符是否是通过模式匹配“结束”表情符号的字符,但这在性能方面似乎有点奇怪。

我错过了什么吗?由于JavaScript带来的所有膨胀,是否没有内置count将表情符号视为一个?

chrs = Array.from( usaText )
(4) ["A", "🇺", "🇸", "Z"]
0: "A"
1: "🇺"
2: "🇸"
3: "Z"
length: 4
提问于
用户回答回答于

这样试试;

const runes = require('runes');
const usaText = "A🇺🇸Z";
runes.substr(usaText, 0, 2); // "A🇺🇸"

扫码关注云+社区

领取腾讯云代金券