ASP中的正则表达式伏都教

时间:2011-11-17 19:54:25

标签: javascript regex validation vbscript asp-classic

在这样的日子里,我不支付工资是件好事。我从我的客户端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?有人能把他的眼睛借给我一秒钟吗?

谢谢

1 个答案:

答案 0 :(得分:2)

可能是您的特定ASP正则表达式引擎不支持与javascript引擎相同的前瞻。根据此链接上的高级主题,第4段中的某些引擎就是这种情况:http://msdn.microsoft.com/en-us/library/ms972966.aspx#regexnet_topic13

在第5段中还有一个基于先行的密码测试的例子。

如果发动机确实是问题,一个简单但效率低的解决方案是运行3个测试:一个用于上部,一个用于下部,一个用于包含长度测试的数字。