如何验证人名? - Python / Django

时间:2011-03-29 13:40:27

标签: python regex django validation

我希望为我的某个表单创建一个全名的验证器。

不幸的是,我不确定最好的方法是,因为它不像以下那样微不足道:

if not char in string.letters + " .'":
    raise ValidationError("...")

认为正则表达式可行,但\w[:alpha:][a-zA-Z]并未真正捕获特殊字符。

名称示例:

  • 铁斯托

  • MarieJosèphe

  • MarieFrançoise

  • JosédeRibas


有什么想法吗?

神圣...听起来像是我打开了一罐蠕虫!谢谢你的答案。

4 个答案:

答案 0 :(得分:12)

<强>不

请仔细阅读:Falsehoods Programmers Believe About Names

答案 1 :(得分:2)

我认为这不是一个好主意。

您想排除哪种名称?没有国际名称允许的字符列表,没有太多理由不允许特定字符。

答案 2 :(得分:1)

我个人不会打扰验证名称,我想有很多可能性很难维护。如果你能想出一个正则表达式,我认为它会如此通用,它不会有效。我唯一能想到的就是排除@ # $ % ^之类的东西。

只要确保你正在逃避角色,如果有人的名字是Fooalert('lala'),那很好,但要确保它没有被解析。

答案 3 :(得分:0)

根据你的python版本,你可能需要re.UNICODE吗?

http://docs.python.org/library/re.html#re.UNICODE