Как ограничить регулярное выражение, чтобы разрешить только следующие слова и запретить все другие символы - PullRequest
0 голосов
/ 25 мая 2019

Я хочу ограничить количество слов, которые пользователь может вводить в поле ввода формы: «Полный рабочий день или полный рабочий день, Неполный рабочий день или неполный рабочий день, Утро или утро, Вечер или вечер, Выходные или выходные дни.

Это то, что у меня есть, и оно работает нормально, но я уверен, что можно было бы сократить его, если бы вы могли помочь.

^(?=.*\bfull time|Full Time|part time|Part Time|mornings|Mornings|Evenings|evenings|weekends|Weekends\b).*$

Вот редактор регулярных выражений, который я использовал смой пример постоянная ссылка: https://rubular.com/r/sV7cWAJG59RHyI

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

^(?=.*\bfull time|Full Time|part time|Part Time|mornings|Mornings|Evenings|evenings|weekends|Weekends\b([^<>;()'"=])).*$

Но я думаю, что моя цепочка или группировка неверны, но не знаю, как решить.

Я использую код проверки Bootstrap 4 для отображениялибо недопустимо (значок красного креста), либо недопустимо (зеленая галочка). Но в приведенном выше примере, включающем группу ([^ <>; () '"=]), форма все еще позволяет вводить дополнительные символы.

...