以下是正则表达式
new RegExp("[a-zA-Z0-9-]+$").test("@#2131")
返回true。为什么允许使用特殊字符:@和#。我不明白原因,我已经多次交叉检查了几乎所有互联网上可用的主要资源。这个表达有什么问题?
我想写的正则表达式应遵循规则:必须以字母数字开头,可以包含空格和连字符,并且必须以字母数字字符结尾。为此,我写了
[0-9a-zA-Z]+[0-9a-zA-Z -]*[0-9a-zA-Z]+$
,它也通过BTW传递test
方法中的上述文字。
答案 0 :(得分:0)
您忘记添加线锚的开头。如果没有^
,您的正则表达式应检查行尾的一个或多个字母数字字符+ _
。
new RegExp("^[a-zA-Z0-9-]+$").test("@#2131")
或
/^[a-zA-Z0-9-]+$/.test("@#2131")