Javascript 姓氏正则表达式

Javascript 姓氏正则表达式,javascript,regex,Javascript,Regex,我试图为人们的姓氏创建一个好的正则表达式 如果姓氏为: abcd abcd'efg abcd efg abcd,.efg 等等 我还需要测试符号是否不重复。。。例如: abcd“efg abcd-”, 是无效的,但是: abcd,.efg 可以是有效的 目前,我刚刚创建了以下内容: ^[a-z .',-_]+$ 现在我正试图检查所有的双符号,但我无法成功进行。这是个坏主意。国际上没有允许人们在姓名中使用的字符列表。有些姓氏甚至包含Unicode符号——不可能编写能够完全正确验证所有姓氏的正则表

我试图为人们的姓氏创建一个好的正则表达式

如果姓氏为:

abcd

abcd'efg

abcd efg

abcd,.efg

等等

我还需要测试符号是否不重复。。。例如:

abcd“efg

abcd-”,

是无效的,但是:

abcd,.efg

可以是有效的

目前,我刚刚创建了以下内容:

^[a-z .',-_]+$

现在我正试图检查所有的双符号,但我无法成功进行。

这是个坏主意。国际上没有允许人们在姓名中使用的字符列表。有些姓氏甚至包含Unicode符号——不可能编写能够完全正确验证所有姓氏的正则表达式。即使你能想出一个正则表达式,它也可能过于泛化,因此不会有效

阅读本文了解不应该这样做的原因:

如果阅读后仍然希望使用正则表达式这样做,请参阅以下内容:

/^(?![^'\-_\n]*['\-_][^'\-_\n]*['\-_])[a-z .',-_]+$/m

我只需要创建我上面写的正则表达式。。。即使这是个坏主意。谢谢,我只想引用一句话:“退一步,问问你自己你真正想要完成的是什么。然后试着去完成它,不要对人们的姓氏或他们的意思做任何假设。”。
abcd'efg
如何有效,但是
abcd“efg
不是吗?单个”是有效的,多个“不是…”@AyeyeBrazo:…和
是一个单字符。谢谢@AmalMurali,是的,
abcd“efg
确实有单双引号。对于一个问题,人们可以得到很多答案,这些答案很容易理解,并且逻辑/规则都很清楚。你真的相信你的问题符合这个标准吗?而且这与
abcd“efg
的有效性不匹配(即单双引号). 此外,
现在我正在尝试检查所有的双代号,但我无法成功进行。
使用此正则表达式作为有效姓氏进行匹配。