用于验证姓名的正则表达式?

尽管这似乎是一个琐碎的问题,但我很确定这不是一个小问题:)


我需要验证来自世界各地的人的名字和姓氏。想象一下一个巨大的名字和姓氏的缩略语列表,在这里我需要尽可能地删除我发现的所有碎片。我该如何使用正则表达式呢?如果只是英语,那我想这会减少它:


^[a-z -']+$

但是,我还需要支持以下情况:


其他标点符号,因为它们可能会在不同的国家/地区使用(不知道使用哪个标点符号,但也许可以!)

不同的Unicode字母集(重音字母,希腊语,日语,中文等)

没有数字或符号或不必要的标点符号或符文等。

标题,中间名首字母,后缀不是此数据的一部分

名称已经由姓氏分隔。

我们已准备好将超级稀有名称简化(存在一个名为“ @”的人,但在每个地方都不允许使用该字符是没有意义的。请务实且明智。)

请注意,许多国家/地区都有关于名称的法律,因此需要遵循一些标准

我可以执行一些标准方法来验证这些字段,以确保我们的网站用户拥有丰富的经验,并且可以在列表中注册时实际使用其名称吗?


我会寻找与您可以在Google上找到的许多“电子邮件地址”正则表达式类似的东西。


紫衣仙女
浏览 568回答 3
3回答

至尊宝的传说

我只允许所有内容(空字符串除外),并假设用户知道他的名字是什么。有两种常见情况:您需要确保名称准确无误,并且可以根据真实的纸质护照或其他身份证明文件或信用卡进行验证。您不必在意,用户仍然可以注册为“ Fred Smith”(或“ Jane Doe”)。在情况(1)中,因为要对照纸质文档进行检查,所以可以允许所有字符。在情况(2)中,您还可以允许所有字符,因为“ 123 456”的确不比“ Abc Def”更糟糕的笔名。
打开App,查看更多内容
随时随地看视频慕课网APP