这是我用来验证可以包含小写和大写字母、数字和破折号的字符串的正则表达式:
/([a-zA-Z0-9-])+$/
其结果如下:
-
abd
- 火柴
-
abcd-
- 火柴
-
abcd0
- 火柴
-
abcd0-
- 火柴
-
abc@
- 不匹配(正确)
-
abc@efg
- 匹配(不正确,不应该)
我究竟做错了什么?
我想说你需要/^([a-zA-Z0-9-])+$/
。您想要匹配整个字符串,而不仅仅是一部分,而是你缺少字符串开头的标记^
.
^
and $
say 字符串开头和结尾之间 and ([a-zA-Z0-9-])+
says 可以有一个或多个字符a-zA-Z0-9-
.
您的正则表达式匹配包含一个或多个字符的所有内容a-zA-Z0-9-
在字符串末尾之前,无论之前是什么。
您可以测试您的正则表达式正则表达式101.com https://regex101.com/r/jE8fA8/1(非常好的在线正则表达式测试工具,带有解释、参考等)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)