正则表达式不是我的强项,但我一直在使用以下内容来验证密码是8到20个字符,并且至少有一个数字和一个大写和小写字符。
((?=.*\d)(?=.*[A-Z])(?=.*[a-z]).{8,20})
所有工作正常,直到我在Internet Explorer中测试,它将所有密码都恢复为无效。
这是由于此处描述的Internet Explorer 7错误IE7 regex issue - Regex that work in every browser does not work in ie7
根据上述问题的博客文章,我看到有些人说在大多数情况下,正则表达式可以重新编写,以便它可以在IE7上工作,但正如我所说,我的正则表达式知识不是最好的,所以如果有人新的如何在IE7上做上述工作会很棒。
我正在使用ASP.NET,所以另一个选择是将EnableClientScript设置为False,以便在服务器端检查正则表达式,但是如果可能的话,我宁愿首先检查客户端。
答案 0 :(得分:1)
只看您发布的链接。 here you go:
/((?=.{8,20})(?=.*\d)(?=.*[A-Z])(?=.*[a-z]).*)/
另外,按照相同的链接,这也应该有效:
/((?=.+\d)(?=.+[A-Z])(?=.+[a-z]).{8,20})/