RegexValidator для имени и фамилии - PullRequest
1 голос
/ 21 января 2010

Как нужно регулярное выражение, которое проверяет имя и фамилию, чтобы каждое слово начиналось с заглавной буквы? это не работает: @ "[^ A-Z]? [a-z] *"

Спасибо

Ответы [ 2 ]

2 голосов
/ 21 января 2010

Попробуйте это:

[A-Z][a-z]*

Обратите внимание, что это не очень хороший способ проверки имен. В зависимости от локали могут использоваться символы не ASCII UTF8. Кроме того, не все имена начинаются с заглавной буквы. В реальном мире существуют следующие имена:

Martha de Lange Norton
Marcél du Toit

Следовательно, это немного лучше - он просто гарантирует, что каждый символ является допустимой буквой:

\p{L}+

При этом лучший способ сделать это может зависеть от реализации механизма регулярных выражений, поэтому нам нужно знать язык и / или библиотеку регулярных выражений, которую вы используете.

Редактировать на основе вашего ответа : Если вам нужно проанализировать оба поля одновременно, попробуйте следующее:

^[A-Z][a-z]*\s[A-Z][a-z]*$
0 голосов
/ 21 января 2010

Это означает, что он НЕ начинается с одной или нескольких заглавных букв. ^ внутри класса символов означает отрицание ... [^A-Z] означает все, кроме столиц. За пределами скобок это означает «начало строки», что, как я полагаю, и есть то, что вы хотели. Вы хотите это:

^[A-Z]?[a-z]* для одной или нескольких столиц в начале или

^[A-Z][a-z]* ровно на одну столицу или

^[A-Z][A-Za-z]* для столиц в любом месте, но определенно один в начале.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...