Динамически создавать Unicode-переменную из строки - PullRequest
0 голосов
/ 04 октября 2019

У меня есть около 3000 HTML-элементов, каждый из которых представляет определенный смайлик браузера. Элементы содержат CSS-класс, представляющий юникод смайликов:

<span class="_1f603"></span>
<span class="_1f604"></span>

Я хочу преобразовать юникод в соответствующий короткий код:

\u{1f603} = ':grinning:'

У меня уже есть рабочая функция для этой части,Проблема заключается в создании правильной строки Unicode с использованием имени класса (поскольку я не собираюсь делать все 3000 элементов вручную).

Чтобы получить то, что я хочу, я написал следующий код:

function setShortCode(ele){
    let classArray = ele.className.split(' ');

    for(let i=0; i<classArray.length; i++){
        if(classArray[i].startsWith('_')){
            htmlUnicodeString = classArray[i].substr(1);
            jsUnicodeString = '\u{'+htmlUnicodeString+'}';

            document.getElementById('chat-text').value = document.getElementById('chat-text').value + joypixels.toShort(jsUnicodeString);
        }
    }
}

Возвращает эту ошибку:

SyntaxError: неправильно сформированная escape-последовательность символов Unicode

По-видимому, динамически создавать строки Unicode таким образом не разрешено?

1 Ответ

1 голос
/ 04 октября 2019

Я думаю, что вы хотите String.fromCodePoint

...