Я пытаюсь написать достаточно разрешающий валидатор для имен в PHP, и моя первая попытка состоит из следующего шаблона:
// unicode letters, apostrophe, hyphen, space
$namePattern = "/^([\\p{L}'\\- ])+$/";
Это в конечном итоге передается вызову preg_match ()
. Насколько я могу судить, это работает с вашим ванильным алфавитом ASCII, но, кажется, сбивает с толку более острые символы, такие как Ă или 张.
Что-то не так с самим шаблоном? Возможно, я ожидаю, что \ p {L}
выполнит больше работы, чем я думаю?
Или это как-то связано со способом ввода не уверен, уместно ли это, но я обязательно указал кодировку UTF8 на странице формы.