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