в моем 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
, который рассматривает эмодзи как единое целое?
Чтобы разбить строку JavaScript на массив кодовых точек?(принимая во внимание «суррогатные пары», но не «кластеры графем») вещь:
chrs = Array.from( usaText )
(4) ["A", "?", "?", "Z"]
0: "A"
1: "?"
2: "?"
3: "Z"
length: 4
К сожалению, это слишком много.