在这样的日子里,我不支付工资是件好事。我从我的客户端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个字符模式,并且毫无疑问它应该匹配,但是ex。 3DMM9igggg返回false,但gDMM9igggg返回true。它适用于JS,在这里:http://www.regular-expressions.info/javascriptexample.html,以及我尝试的其他几个测试人员。
WTF?有人能把他的眼睛借给我一秒钟吗?
谢谢
答案 0 :(得分:2)
可能是您的特定ASP正则表达式引擎不支持与javascript引擎相同的前瞻。根据此链接上的高级主题,第4段中的某些引擎就是这种情况:http://msdn.microsoft.com/en-us/library/ms972966.aspx#regexnet_topic13
在第5段中还有一个基于先行的密码测试的例子。
如果发动机确实是问题,一个简单但效率低的解决方案是运行3个测试:一个用于上部,一个用于下部,一个用于包含长度测试的数字。