Name的正则表达式是什么?

时间:2013-09-25 12:51:25

标签: regex validation

这些规则的正则表达式模式是什么:

  • 名称第一位的大写

有效:约翰 无效:JohN

  • 允许名称中间的大写但只允许一次。

有效:麦克阿瑟 无效:McArThuR

  • 仅使用撇号(')一次,必须在名称中间

有效:Mac O'Brian 无效:Mac'O''Brian

3 个答案:

答案 0 :(得分:8)

这是一个全球正则表达式,适用于世界各地的所有文化。

^.+$

欢迎你。

您要做的是在非常开放的领域进行复杂的验证。请考虑改为提供given namefamily name输入字段。

答案 1 :(得分:1)

如果您真的打算进行验证(例如在网络表单或帐户注册中),我会关注Damien_The_Unbeliever的评论。让人们拼出他们喜欢的名字可能会更好;事后,有更好的方法来识别巨魔。

但是,作为一项智力练习,这里有一个正则表达式,根据你给出的例子进行验证。这是PCRE语法;您可能需要针对特定​​的正则表达式语法或风格进行调整或修改:

[A-Z][a-z]+(?:[A-Z]?'?|'?[A-Z])[a-z]+

请注意,您必须单独将其应用于每个名称或名称部分,但由于您的验证模式主要由西欧姓氏惯例驱动,因此仅适用于姓氏可能是有意义的。

答案 2 :(得分:1)

[A-Z][a-z ]*   (?:   [A-Z]?[a-z ]*\'?   |   \'?[a-z ]*[A-Z]?   )   [a-z ]+

丢弃方括号外的空格,我只是把它们放在一边清楚。