$regEx = '/^[^\w\p{L}-]+$/iu';
\w
- соответствует буквенно-цифровым цифрам
\p{L}
- соответствует одной кодовой точке Unicode в категории «Буквы» (см. Раздел Unicode Categories section здесь).
-
в конце класса символов соответствует одному дефису.
^
в классах символов отменяет класс символов, так что регулярное выражение будет соответствоватьпротивоположность класса символов (все, что вы делаете , а не указываете).
+
вне класса символов говорит, что соответствует 1 или более символов
^
и$
вне класса символов заставит движок принимать только совпадения, которые начинаются в начале строки и продолжаются до конца строки.
После шаблона модификатор i
сообщает игнорироватьcase и u
сообщает механизму сопоставления с образцом, что мы собираемся отправлять данные UTF8 по-своему, а существующий модификатор g
был удален, так как в PHP это не нужно (вместо этого глобальное сопоставлениев зависимости от того, какая функция сопоставления вызывается)