这是我用来验证字符串的正则表达式,该字符串可以包含小写和大写字母,数字和短划线:
/([a-zA-Z0-9-])+$/
它有以下结果:
abd
- 匹配abcd-
- 匹配abcd0
- 匹配abcd0-
- 匹配abc@
- 不匹配(正确)abc@efg
- 匹配(不正确,不应该)我做错了什么?
答案 0 :(得分:5)
我会说你需要/^([a-zA-Z0-9-])+$/
。您希望匹配整个字符串,而不仅仅是一个部分,但您错过了字符串^
开头的标记。
^
和$
在字符串的开头和结尾之间说,([a-zA-Z0-9-])+
说可以有一个或多个字符{{ 1}}
你的正则表达式匹配字符串结尾前包含一个或多个字符a-zA-Z0-9-
的所有内容,无论之前是什么。
您可以在regex101.com上测试您的正则表达式(非常好的在线工具,用于正则表达式测试,包括解释,参考等)。