Можно ли указать разрешённые символы для всех слов в строке, а остальные символы запретить?
Здравствуйте. Я хочу для поля "адрес" сделать валидацию, и меня устроит вариант, где будет написано всё, что угодно. Это тоже пойдёт: "ывалпорывдл 345 ылваоп №345.2"
Самое главное - это набор символов, который может быть использован:
от А до Я, от A до Z, от 0 до 9, символ запятой, точки, дефис, дробь (/) и знак номер (№). Если будет любой другой символ (условный $ или @), то выражение не пройдёт
Как такое можно сделать?
Ну есть два способа, описать чёрный список или белый, я так понимаю чёрный будет проще, так как символов поменьше, а так в регулярке есть уже группы \W\D не буквы и не цифры
FanatPHP, по поводу поисков одного неразрешенного символа шаблоном /[^ a-z0-9а-я,.\/№-]/iu
preg_match возвращает 1, если шаблон совпал с текстом, 0 если нет, или false в случае ошибки.
Когда в шаблоне используется модификатор /u выполняется дополнительная проверка перед началом поиска. Если входная строка не является валидной UTF-8 строкой, то поиск шаблона даже не начинается и preg_match возвращает false.
Так что нужен оператор === чтобы не пропустить какой-нибудь мусор во входной строке. sandbox.onlinephpfunctions.com/code/d8885287e5d1d6...