Регулярное выражение для имен со специальными символами (Unicode)

Хорошо, я весь день читал о регулярных выражениях, и до сих пор не понимаю этого должным образом. Я пытаюсь проверить имя, но функции, которые я могу найти для этого в Интернете, используют только [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
}

Альтернативой может быть указание всех символов Юникода, как предлагается в ответе шифти , что я могу сделать что-то вроде, наряду с решением выше, но это немного непрактично.

11
задан Community 23 May 2017 в 10:31
поделиться