【发布时间】:2011-07-25 07:32:36
【问题描述】:
我希望为我的一个表单创建一个全名验证器。
不幸的是,我不确定最好的方法是,因为它不像以下那样微不足道:
if not char in string.letters + " .'":
raise ValidationError("...")
认为正则表达式可以工作,但 \w、[:alpha:]、[a-zA-Z] 并不能真正捕获特殊字符。
名称示例:
-
铁斯托
-
玛丽·约瑟夫
-
玛丽·弗朗索瓦丝
-
何塞·德·里巴斯
有什么想法吗?
天啊……听起来我打开了一罐虫子!感谢您的精彩回答。
【问题讨论】:
-
最近有一对夫妇想给他们的孩子取名“4real”。那么为什么需要验证名称?
-
为什么要限制人们可以使用哪些字符作为他们的名字?例如,某些语言在编写时具有 !在它们中,作为单词的一部分(而不是标点符号)。看来你无缘无故地让自己变得更难了。
-
放弃吧。您无法验证人们的姓名。没有规则。名称中的数字(如“He3nry”)很少见,但并非不可能或非法。 “艺术家原名王子”是一个相当复杂的名字,他的符号甚至不是Unicode。
-
@Arkadiy:不是“亨利四世国王殿下”吗?
-
@Arkadiy:不可能是我。我的名字无效,中间有一个标点符号。因此,我的名字被追踪斩首的软件拒绝了。
标签: python regex django validation