【发布时间】:2013-11-04 23:51:17
【问题描述】:
我想验证用户名和姓氏,以便在全球社交社区中注册。
我想允许所有这些与语言相关的特殊字符,如 ÄÖÜÀýéè 和 最多 3 个前缀,全部用空格分隔(如果有超过1 个名字)。
也不应允许使用下划线或其他特殊字符,但应允许使用减号 (-)。
这就是我能想到的名称中应该允许的所有内容。我不知道在德国以外的其他国家情况如何,但在这里你最多可以有 3 个姓氏,一个姓氏也可以有 2 个单词,比如“von Seidenfeld”。 也许你也可以在这里给我更多的建议,因为我想为世界各地的每个全名介绍这个名称验证系统。
我也知道我必须使用 RegEx,但我不知道如何只允许我刚刚编写的这些条件。
到目前为止我所拥有的:
if (!preg_match('/^(\pL+\s+)$/u', $value)) echo 'error';
或在此处查看:http://regex101.com/r/tE0uQ5(遗憾的是不起作用,没有匹配项)
【问题讨论】:
-
简短回答:您可能不想进入这个兔子洞。长答案:kalzumeus.com/2010/06/17/…
-
@David 哦,好吧。所以你有什么建议? Facebook 是如何做到的?
-
Facebook 会这样做吗? Facebook到底是做什么的?几年前我第一次注册 Facebook 时,我的“名字”是“Turbocharged Monkeybrain”。工作正常。
-
@David 按照标准命名约定,这在技术上是完全有效的名字和姓氏。另外,喜欢这个链接。我在我的网站上发布了同样的内容,还没有看到你的。
-
我认识一个大学同学,英文名是
Z