Javascript: обнаружение недопустимых стрелок в юникоде и замена на пустые - PullRequest
0 голосов
/ 04 апреля 2020

Недопустимая стрелка: escape(strNotes): результат -> "%1A"

Это недопустимая стрелка: https://www.htmlsymbols.xyz/unicode/U+001A

Я не могу вставить strNotes, но strNotes в системе заменяется недопустимым символом, похожим на стрелку, который ломает систему.

Правильная стрелка: escape('→'): результаты -> "%u2192"

Но если я воспользуюсь приведенным выше proper arrow, это хорошо работает.

Как обнаружить стрелку нелегалов и специальные символы в Javascript и удалить их из строки?

Ответы [ 3 ]

0 голосов
/ 04 апреля 2020

Вы можете заменить символы ASCII

text.replace(/[^\ -~]+/g, '')

- ~ минус тильда - ~

0 голосов
/ 06 апреля 2020

Я закончил этим, благодаря @ devio

    String.prototype.toUnicode = function () {
        var uni = [],
            i = this.length;
        while (i--) {
            uni[i] = this.charCodeAt(i);
        }
        return "&#" + uni.join(';&#') + ";";
    };

    let setOfIllegalCharacters = new Set();
    for (let i = 0; i < 32; i++) {
        setOfIllegalCharacters.add("&#" + i + ";");
    }


        // this iterates through the strNotes string and removes all illegal or bad characters.
        for (let i = 0; i < strNotes.length; i++) {
            if (setOfIllegalCharacters.has(strNotes[i].toUnicode())) {
                strNotes = strNotes.replace(strNotes[i], '');
            }
        }
0 голосов
/ 04 апреля 2020

Вы можете использовать replace(/ /, '') и заменить их всех.

...