javascript中的正则表达式问号

javascript中的正则表达式问号,javascript,regex,validation,Javascript,Regex,Validation,这可能很简单,但我不知道怎么做 我有一个正则表达式: new RegExp("^[A-Za-z\\u00C0-\\u017F][\\- ]?+$"); 它验证一个名字。名称必须以字母开头(范围为unicode,工作正常),然后以字母或-或空格继续。但它可以只是字母,就像大多数名字一样 我已经找过了,但没有找到正确的方法 我不想复制字符范围。这只是为了有一个更“合适”的代码 如果你能帮忙,那就太好了:) 提前感谢现在您只允许使用一个字母和一个或多个破折号/空格。你可能想要 new RegExp(

这可能很简单,但我不知道怎么做

我有一个正则表达式:

new RegExp("^[A-Za-z\\u00C0-\\u017F][\\- ]?+$");
它验证一个名字。名称必须以字母开头(范围为unicode,工作正常),然后以字母或-或空格继续。但它可以只是字母,就像大多数名字一样

我已经找过了,但没有找到正确的方法

我不想复制字符范围。这只是为了有一个更“合适”的代码

如果你能帮忙,那就太好了:)

提前感谢

现在您只允许使用一个字母和一个或多个破折号/空格。你可能想要

new RegExp("^[A-Za-z\\u00C0-\\u017F][A-Za-z\\u00C0-\\u017F -]*$");
但一般来说,尝试用正则表达式验证名称并不是一个好主意。

现在只允许一个字母,然后是一个或多个破折号/空格。你可能想要

new RegExp("^[A-Za-z\\u00C0-\\u017F][A-Za-z\\u00C0-\\u017F -]*$");

但总的来说,尝试用正则表达式验证名称并不是一个好主意。

的确如此。但我不想复制字符范围。这只是为了有一个更“合适”的代码。@user1550752:但它不是重复的-第二个与第一个不同,除非您还想在名称的开头允许破折号或空格,否则没有办法。是的,我知道,它与您的解决方案配合得很好。事实上,我想使用“?”来获得尽可能干净的正则表达式。我知道有最简单的方法,但我只是想看看是否有可能使用“?”@user1550752:The
*
(零或更多)已经包含
(零或一)。你不能两者兼得
?+
完全是指其他的东西(所有格量词,无论如何JavaScript都不支持)。谢谢你的时间是的。但我不想复制字符范围。这只是为了有一个更“合适”的代码。@user1550752:但它不是重复的-第二个与第一个不同,除非您还想在名称的开头允许破折号或空格,否则没有办法。是的,我知道,它与您的解决方案配合得很好。事实上,我想使用“?”来获得尽可能干净的正则表达式。我知道有最简单的方法,但我只是想看看是否有可能使用“?”@user1550752:The
*
(零或更多)已经包含
(零或一)。你不能两者兼得
?+
完全是指其他的东西(所有格量词,无论如何JavaScript都不支持)。感谢您的时间您的表达式说“一个字母,然后可选一个破折号或一个空格”,如果我理解正确,
+
是糟糕的语法,尽管JavaScript通常可以原谅,所以。。。如果你想写一个
(?:快速|干净|适当|高效)
正则表达式,请阅读(并学习):。说到学习正则表达式,没有捷径可走。你的表达是“一个字母,然后选择一个破折号或一个空格”,如果我理解正确,
+
是糟糕的语法,尽管JavaScript通常可以原谅,所以。。。如果你想写一个
(?:快速|干净|适当|高效)
正则表达式,请阅读(并学习):。说到学习正则表达式,没有捷径可走。