【发布时间】:2011-11-17 19:54:24
【问题描述】:
啊,在这样的日子里我不付薪水是件好事。我将一些正则表达式模式从客户端 Javascript 复制到服务器端 ASP,电子邮件模式没有问题,但密码模式的相同功能今天让我的老板花了 6 个小时(我们的小秘密)。
Function validatePassword(strPass)
Dim regEx
Set regEx = new RegExp
regEx.IgnoreCase = false
regEx.global = false
regEx.Pattern = "^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,10}$"
ValidatePassword = regEx.Test(strPass)
End Function
这是一个简单的 1 上、1 下、1 位、6-10 个字符的模式,毫无疑问它应该匹配但前。 3DMM9igggg 返回 false,但 gDMM9igggg 返回 true。它在 JS 中运行良好,这里是:http://www.regular-expressions.info/javascriptexample.html,在我尝试过的其他几个测试器中。
WTF?谁能把眼睛借给我看一下?
谢谢
【问题讨论】:
-
将密码限制为 10 个字符是邪恶和错误的。
-
考虑到一些背景情况,我不同意(你不知道这个项目,为什么这么不灵活?)。大声喊叫是 62 个可能的字符的 10 次方。这几乎是千亿的可能性。此外,它还旨在限制您尝试破解的空间量。我采取了我的预防措施,但如果你想出一些新的东西或者我没有考虑到你只有 10 个字符来完成它。
标签: javascript regex validation vbscript asp-classic