Нужно регулярное выражение где в имени первая буква должна быть большой и другие большие буквы нужно запретить, за исключением случая когда имя пишется через дефис, тогда разрешается большая буква первая и которая идет сразу после дефиса, остальные нельзя. Например
Дмитрий - ОК
ДмИтрий - Ошибка
Дмитрий-Иосиф - ОК
ДмИтрий-Иосиф - Ошибка
Дмитрий-иосиф - Ошибка
Получилась регулярка у меня, только допускающая одну большую вначале, но через дефис имя уже воспринимает неправильно т.к. после дефиса идет еще одна большая.
Мое выражение
@"^[А-ЯЁ][а-яё\-]+\s([А-ЯЁ][а-яё\-]+)(\.|\s)\s*([А-ЯЁ][а-яё\-\.]+)$"
В нем используется шаблон Ф И О
Используйте
^\p{Lu}\p{Ll}*(?:-\p{Lu}\p{Ll}*)?$
См. демо регулярного выражения.
Подробности:
^
- начало строки\p{Lu}
- заглавная буква\p{Ll}*
- 0 и более строчных букв(?:-\p{Lu}\p{Ll}*)?
- необязательная последовательность следующих шаблонов:
-
- дефис\p{Lu}
- заглавная буква\p{Ll}*
- 0 и более строчных букв$
- конец строки. Если нужна поддержка только русских букв, замените
\p{Lu} --> [А-ЯЁ]
\p{Ll} --> [а-яё]
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть объекты, которые предоставляют данные для постройки графикаНужно построить механизм кэширования этих объектов, но не простой а с некоторой...
При выводе списка в представлении происходит ошибка Поле не найдено: "DB2ConnSettings_bEnableEFCaseSensitivity"