Описание регулярного выражения на связанной странице гласит «Строчные и прописные буквы и все цифры». Но регулярное выражение ^[a-zA-Z0-9\s.\-]+$
допускает также пробелы, точки и дефисы.
Регулярное выражение гарантирует, что строка содержит только буквенно-цифровые символы, пробелы, точки и дефисы, а также что строка не пуста. Я не знаком с контекстом, но я предполагаю, что причина, по которой они назвали его безопасным текстом, может заключаться в том, что он запрещает угловые скобки (хотя разрешает обычно используемые символы в текстовых областях) и, таким образом, предотвращает внедрение скрипта.
Точка .
не является метасимволом внутри класса символов []
. Поэтому вам не нужно выходить за пределы в квадратных скобках.
единственными специальными символами или метасимволами внутри класса символов являются закрывающая скобка (]
), обратная косая черта (\
), каретка (^
) и дефис (* 1016) *). Обычные метасимволы - это обычные символы внутри класса символов, и их не нужно экранировать обратной косой чертой.
Большинство разновидностей регулярных выражений допускают дефисы без экранирования, если вы помещаете их в начало или конец класса персонажа. Дефис в [!#@-]
буквальный, а в [!#-@]
- нет. Первый означает один из четырех символов, тогда как второй означает !
, и все символы между (и включая) значениями ASCII #
и @
, то есть ASCII от 35 до 64.
А если библиотека вообще хороша, я бы сказал, что это хорошее место для начала. Вы можете изменить их в соответствии с вашими требованиями. Например, их регулярное выражение для паролей показывает, как использовать положительное предпросмотр для проверки наличия по крайней мере одного строчного / верхнего регистра / числового значения и т. Д. Но он допускает только строки длиной от 4 до 8: возможно, вы захотите разрешить более длинные пароли.