正则表达式-名称中只能包含一个空格和一个连字符

时间:2018-08-28 06:07:48

标签: javascript regex

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

当前,它允许多个空格和连字符:

vjbn-bjnlm-bnj-

gvjhb vgbhjk vghj

vgjbh-vgh vghb vghbj-

我如何将其调整为仅允许1个空间或每个连字符:

jhbn-vgbh vghjbj

我当前的正则表达式是:

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

1 个答案:

答案 0 :(得分:3)

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

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

https://regex101.com/r/61kC3C/1