名称和姓氏的RegexValidator

时间:2010-01-21 17:30:39

标签: regex

如何使用验证名称和姓氏的正则表达式,以便每个单词以大写字母开头? 这不起作用:@“[^ A-Z]?[a-z] *”

由于

2 个答案:

答案 0 :(得分:2)

试试这个:

[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]*$

答案 1 :(得分:0)

这表明它不是从一个或多个首都开始的。字符类中的^表示否定... [^A-Z]表示除了大写字母之外的所有内容。在括号之外,它意味着“字符串的开头”,我认为这是你的意图。你想要这个:

^[A-Z]?[a-z]*开头的一个或多个大写,或

^[A-Z][a-z]*只需一个大写,或

^[A-Z][A-Za-z]*任何地方的首都,但绝对是开头的。