我需要验证字母字符(在请求中,node.js)和我使用的是:
/[a-zA-Z]+/.test(input)
但是当传递值null时,它被验证OK(regexp返回TRUE) 例如:
/[a-zA-Z]+/.test(null) // <--- this returns true :(
有人可以解释一下吗?我需要避免空值,谢谢!
答案 0 :(得分:5)
test()
方法执行搜索常规匹配 表达式和指定的字符串。返回true或false
RegExp.prototype.test()
转换传递给String
例如,/\d/.test(0)
也会按预期返回true
,其中0
是作为参数传递的Number
。
答案 1 :(得分:2)
因为.test()将参数强制转换为字符串,所以您实际上是针对'null'进行测试 - 它的计算结果为true。