Хорошо, я весь день читал о регулярных выражениях, и до сих пор не понимаю этого должным образом. Я пытаюсь проверить имя, но функции, которые я могу найти для этого в Интернете, используют только [a-zA-Z]
, оставляя символы, которые я должен принять.
Мне в основном нужно регулярное выражение, которое проверяет, что имя состоит как минимум из двух слов и не содержит чисел или специальных символов, таких как ! "# ¤% & / () = ...
, однако слова могут содержать такие символы, как æ, é, Â и так далее ...
Примером допустимого имени может быть: «Джон Элкьорд» или «Андре Свенсон»
Неприемлемое имя будет: " Hans "," H 4 nn 3 Andersen "или" Martin Henriksen ! "
Если это важно, я использую javascript . match ()
на стороне клиента и вы хотите использовать php preg_replace ()
только «на отрицательной» стороне сервера. (удаление несовпадающих символов).
Любая помощь будет принята с благодарностью.
Обновление:
Хорошо, благодаря ответ Аликс Аксель У меня важная часть отключена, серверная часть .
Но, как показывает страница из ответа LightWing , я не могу найти ничего о поддержке Unicode для javascript, поэтому в итоге я получил половину решения для клиентской стороны, просто проверяя хотя бы наличие два слова и минимум 5 символов вроде этого:
if(name.match(/\S+/g).length >= minWords && name.length >= 5) {
//valid
}
Альтернативой может быть указание всех символов Юникода, как предлагается в ответе шифти , что я могу сделать что-то вроде, наряду с решением выше, но это немного непрактично.