В рунете, оказалось, проблематично найти не только регулярное выражение для валидации ФИО, которое пришлось в итоге писать самому, но и для проверки банального URL.
На этот раз, отделался легким испугом: нашел выражение на западном ресурсе и слегка модифицировал его для соответствия требованиям.
... правильным URL считаются адреса http и https, явное указание протокола также может отсутствовать. Учитываются только адреса, состоящие из символов, т.е. IP адреса в качестве URL не присутствуют при проверке. Допускаются поддомены, указание порта доступа через двоеточие, GET запросы с передачей параметров, доступ к подпапкам на домене, допускается наличие якоря через решетку. Однобуквенные домены считаются запрещенными. Запрещены спецсимволы, например «-» в начале и конце имени домена. Запрещен символ «_» и пробел в имени домена. При составлении регулярного выражения ориентируйтесь на список правильных и неправильных выражений заданных ниже.
Сегодня по долгу службы, пришлось писать регулярное выражение для валидации введенных пользователем Фамилии Имени Отчества. Увы, но великий и мудрый Гугль с Яндексом в лице моей любимой поисковой системы Nigma (http://www.nigma.ru), не смогли связать и двух слов по этой теме. Пришлось думать самому.
Конечно, проверка соответствия английского имени пользователя вполне тривиальная задача:
/^[A-Z][a-z]{2,}\040[A-Z][a-z]{2,}$/
Это регулярное выражение проверяет наличие в валидируемой строке двух слов разделенных пробелом, которые начинаются с латинских символов в верхнем регистре и состоят из тех же символов, но в нижнем регистре. причем слова эти должны иметь длину от 2-х букв и более.
Что ж, остается учесть, что в русском и украинском языках есть еще и отчество, в итоге получим такое выражение для русского:
Чудненько! А теперь осталось учесть, что некоторые люди берут себе двойные фамилии, то есть к своей собственной добавляют еще и фамилию мужа, жены или для женщин - сохраняют девичью фамилию.
Такие фамилии пишутся через дефис, что мы и отразим в результирующем выражении, получив на выходе моего мозга следующее:
Соглашусь, что для вариантов с Сен-Жюст, Мак-Магон можно и в выражении для английского языка предусмотреть использование дефиса, если они там конечно бывают.
Вот в общем-то и всё. Теперь в инете будет хоть какой-то образец подобной валидации.
Полученное регулярное выражение предназначено для проверки соответствия строки введенной пользователем формату Фамилии Имени Отчества для русского и украинского языков одновременно. Если же понадобиться анализ только русских имен, то конечно следует исключить лишние символы из этого регекса.
Теперь некий гипотетический В'яїсненко-Марусяк Мар'ян Іґнатович будет валидироваться как корректная строка ФИО!
Вот так-то...
Кстати, популярно о регулярных выражениях советую почитать здесь: