Javascript 正则表达式-名称中只允许一个空格和一个hypen

Javascript 正则表达式-名称中只允许一个空格和一个hypen,javascript,regex,Javascript,Regex,目前,我的正则表达式允许多个空格和连字符,但不允许在名称中一个接一个地使用它们 目前,它允许使用多个空格和hypens: vjbn-bjnlm-bnj- gvjhb vgbhjk vghj vgjbh-vgh vghb vghbj- 我将如何调整此设置,使其仅允许1个空间或宣传: jhbn-vgbh vghjbj 我现在的正则表达式是: /^[À-ÿA-Za-z]+(?:[À-ÿA-Za-z]+|([-' ])(?!\1))*/ 在开始时,您可以为+-.+-添加负前瞻,从而排除具有多个

目前,我的正则表达式允许多个空格和连字符,但不允许在名称中一个接一个地使用它们

目前,它允许使用多个空格和hypens:

vjbn-bjnlm-bnj-

gvjhb vgbhjk vghj

vgjbh-vgh vghb vghbj-
我将如何调整此设置,使其仅允许1个空间或宣传:

jhbn-vgbh vghjbj
我现在的正则表达式是:

/^[À-ÿA-Za-z]+(?:[À-ÿA-Za-z]+|([-' ])(?!\1))*/

在开始时,您可以为
+-.+-
添加负前瞻,从而排除具有多个破折号的字符串,然后再次使用相同类型的模式排除具有多个空格的字符串:

^(?!.+-.+-)(?!.+ .+ )[À-ÿA-Za-z]+(?:[À-ÿA-Za-z]+|([-' ])(?!\1))*
 ^^^^^^^^^^^^^^^^^^^^

在开始时,您可以为
+-.+-
添加负前瞻,从而排除具有多个破折号的字符串,然后再次使用相同类型的模式排除具有多个空格的字符串:

^(?!.+-.+-)(?!.+ .+ )[À-ÿA-Za-z]+(?:[À-ÿA-Za-z]+|([-' ])(?!\1))*
 ^^^^^^^^^^^^^^^^^^^^

这将接受像
foo-bar
这样的东西。也许手术可以,也许不行,就这样。哇,非常感谢你的帮助。只是让我的一天:“JAKEMETZ当一个答案解决你的问题,考虑标记它被接受,以表明问题已经解决:”这将接受的东西,如“代码> Fo-Bar < /代码>。也许手术可以,也许不行,就这样。哇,非常感谢你的帮助。只是让我的一天:“JAKEMETZ当答案解决你的问题,考虑标记它被接受,以表明问题得到解决: