Javascript js正则表达式-允许字母、数字和破折号,但不能单独使用一个或多个破折号

Javascript js正则表达式-允许字母、数字和破折号,但不能单独使用一个或多个破折号,javascript,regex,Javascript,Regex,我想要一个允许字母、数字和破折号的正则表达式,即([a-z0-9\-]+),但我不想要一个或多个没有字母或数字的破折号 可能吗 ---无效 -无效 3e qw有效 -3-有效 -a-有效使用以下模式: [a-zA-Z0-9-]*(?=[a-zA-Z0-9])[a-zA-Z0-9-]* 通过使用: 或需要一个字母/数字: /^-*[a-z\d][a-z\d-]*$/i 或使用负数来防止仅由破折号组成的匹配字符串: /^(?!-+$)[a-z\d-]+$/i regex新手@Roman

我想要一个允许字母、数字和破折号的正则表达式,即
([a-z0-9\-]+)
,但我不想要一个或多个没有字母或数字的破折号

可能吗

---无效
-无效
3e qw有效
-3-有效

-a-有效

使用以下模式:

[a-zA-Z0-9-]*(?=[a-zA-Z0-9])[a-zA-Z0-9-]*

通过使用:


或需要一个字母/数字:

/^-*[a-z\d][a-z\d-]*$/i


或使用负数来防止仅由破折号组成的匹配字符串:

/^(?!-+$)[a-z\d-]+$/i

regex新手@RomanPerekhrest如果我想在字母、数字和数字之外还允许空格,该怎么办dashes@bootsa,在这种情况下,空格将充当单词/项目分隔符,因此无法单独将其应用于一个或多个破折号
/^(?!-+$)[a-z\d-]+$/i