如何实现正则表达式应该最多允许八个字符但忽略“ - ”(减号)符号?所以例如“1234-5678”应该通过,但“123456789”不通过。这个解决方案对我不起作用:
^(([\d\w]{0,8})|([\d\w-]{0,9}))$
答案 0 :(得分:2)
通过 ...最多允许八个字符不清楚允许哪种类型的字符,但是根据您自己的尝试,您似乎想要匹配字母和数字以及任意数量的破折号(两个字母或数字之间的一个,最大长度为8,不计算破折号:
^(?:[a-zA-Z0-9]-?){0,7}[a-zA-Z0-9]$
注意:这不允许空字符串,至少一个字符。
答案 1 :(得分:1)
这个也允许空字符。 也允许 - 在开始和结束。 还允许多个 - 字符之间:
^-*(?:[\w\d]-*){0,8}$