Regex не может поймать пространство перед цитатой - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть регулярное выражение для отлова незаконных символов (для API c), выглядит как:

const regexIllegalChar: RegExp = new RegExp(
  `[^(\\w)(\\s)(\\')(\\.)(\\-)(\\/)(\\+)(\\=)(\\@)(\\_)(\\:)(\\,)(É)(È)(Ê)(Ë)(À)(Â)(Ä)(Ô)(Ö)(Û)(Ü)(Î)(Ï)]*`,
  'gi'
);

Но когда я набираю на планшете IOS (выглядит как <<), пробел автоматически добавляется до или после (зависит от того, открываются или закрываются слова), и этот пробел не перехватывается.

Например:

foo bar => foobar : OK
foo"bar (manualy removed automatic space) => foo"bar : OK
foo "bar (manualy removed automatic space, and add a normal one) => foo"bar : OK
foo[automatic_space]"bar => foo[automatic_space]"bar : NOK

1 Ответ

0 голосов
/ 03 февраля 2020

Вы можете попробовать белый список допустимых символов вместо внесения в черный список недопустимых символов, при этом будет обнаружен неизвестный символ, который IOS вставляет в текст.

(str.match(/[a-z0-9_"]+/gi) || []).join('')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...