ЛУЧШИЕ ВЫРАЖЕНИЯ РЕКЕКСА ДЛЯ ИМЕН:
- Я буду использовать термин специальный символ для обозначения следующих трех символов:
- Тире -
- Дефис '
- Точка .
- Пробелы и специальные символы не могут появляться дважды подряд (например: - или '. или .. )
- Обрезается (без пробелов до или после)
- Не за что;)
Обязательное одиночное имя, БЕЗ пробелов, БЕЗ специальных символов:
^([A-Za-z])+$
- Сьерра действительна, Джек Александр недействителен (имеет пробел), О'Нил недействителен (имеет специальный символ)
Обязательное одно имя, БЕЗ пробелов, С специальные символы:
^[A-Za-z]+(((\'|\-|\.)?([A-Za-z])+))?$
- Сьерра действительна, О'Нил действителен, Джек Александр недействителен (имеет пробел)
Обязательное одиночное имя, необязательные дополнительные имена , С пробелами, С специальные символы:
^[A-Za-z]+((\s)?((\'|\-|\.)?([A-Za-z])+))*$
- Джек Александр действителен, Сьерра О'Нил действителен
Обязательное одиночное имя, необязательные дополнительные имена , С пробелами, БЕЗ специальные символы:
^[A-Za-z]+((\s)?([A-Za-z])+)*$
- Джек Александр действителен, Сьерра О'Нил недействителен (имеет специальный символ)
ОСОБЫЙ СЛУЧАЙ
Многие современные интеллектуальные устройства добавляют пробелы в конце каждого слова, поэтому в своих приложениях я разрешаю неограниченное количество пробелов до и после строки, а затем обрезаю ее в коде позади. Поэтому я использую следующее:
Обязательное одно имя + необязательные дополнительные имена + пробелы + специальные символы:
^(\s)*[A-Za-z]+((\s)?((\'|\-|\.)?([A-Za-z])+))*(\s)*$
Добавьте свои специальные символы
Если вы хотите добавить свои собственные специальные символы, скажем, подчеркивание _ это группа, которую вам нужно обновить:
(\'|\-|\.)
К
(\'|\-|\.|\_)
PS: Если у вас есть вопросы, прокомментируйте здесь, и я получу электронное письмо и отвечу;)