Как определить, является ли символ, такой как «?», неподдерживаемым с помощью JavaScript? - PullRequest
4 голосов
/ 04 октября 2019

Иногда люди заполняют формы странными вещами, такими как странные комбинации Юникода, чтобы показать специальные шрифты.

Например:

???

Однако иногдасимволы не поддерживаются клиентом и поэтому приводят к «" ».

Как я могу обнаружить ошибку с помощью JavaScript? Это возможно?

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 октября 2019

Лучший способ - это сделать по-другому:

  • Вы выбираете веб-шрифт и, следовательно, допустимые диапазоны. Описание веб-шрифта дает вам список разрешенных символов, обычно дизайнеры улучшают его и никогда не удаляют глифы.

  • вы допускаете только такие символы в вашей форме.

В противном случае это будет зависеть от веб-браузера. Один и тот же пользователь может увидеть другой результат, если он находится в другом браузере (например, мобильный или компьютер). Таким образом, лучший способ (IMHO) - это полностью удалить клиентские шрифты из рендеринга, и поэтому вы явно указываете глифы (и как их отображать) с помощью веб-шрифта. Это не зависит от клиента / веб-браузера (но на очень старых)

0 голосов
/ 07 октября 2019

Вы можете обнаружить не-символы, которые соответствуют сценарию использования, указанному в вопросе.

use utf8;
use Unicode::UCD qw(charinfo);
if (defined charinfo ord '?') {
    print 'is a character';
} else {
    print 'is a non-character';
}

См. https://npmjs.com/search?q=ucd для библиотек JavaScript UCD.

...