针对`undefined`

时间:2018-03-30 17:07:18

标签: javascript regex

我正在构建一个密码强度验证程序,用于检查密码是否包含小写和大写字符。我使用正则表达式并在提供密码字符串未定义时获得意外结果 - 请参阅下面的屏幕截图。我希望两个检查都返回 false ,但第一个返回 true

为什么第一次检查会返回 true enter image description here

1 个答案:

答案 0 :(得分:4)

如果不是一个字符串,Javascript将尝试将test的参数转换为字符串。所以,自:

String(undefined) === "undefined"

您的第一个正则表达式为真,因为"undefined"包含一个或多个小写字母。第二个是假的,因为没有大写字母。

您甚至可以通过注明

来验证这一点
/^undefined$/.test()

返回true