Regex для обнаружения определенных кодов ASCII - PullRequest
0 голосов
/ 04 апреля 2019

Я не очень хорош в регулярных выражениях, и в настоящее время я использую следующий метод для предотвращения ввода определенных кодов ASCII (40,38,9,13,27) во входные данные:

if(str.includes("(")) etc

Может ли кто-нибудь мне помочь? Единственное регулярное выражение, которое я нашел, предотвратило все коды ASCII, и это не та функциональность, к которой я стремлюсь.

/^[\x00-\x7F]*$/

1 Ответ

1 голос
/ 04 апреля 2019

Во-первых, вам нужно преобразовать эти десятичные коды символов в шестнадцатеричные, поскольку вы используете шестнадцатеричные escape-последовательности.Затем вы можете создать класс символов, соответствующий этим символам и соответствующий глобальному флагу:

40 = \x28
38 = \x26

Это будет соответствовать, если вход содержит любой символ в любом месте:

/[\x28\x26]/g

Вы можетепротестируйте в консоли браузера, предполагая, что вы используете JavaScript:

/[\x28\x26]/g.test('asldkf(jals')
> true
/[\x28\x26]/g.test('asldkfjals')
> false

Причина, по которой приведенное выше регулярное выражение соответствует ВСЕМ символам ASCII, заключается в том, что это диапазон (обозначаемый - между escape-последовательностями)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...