2

正则表达式不是我的强项,但我一直在使用下面的代码来验证密码是否在 8 到 20 个字符之间,并且至少有一个数字和一个大小写字符。

((?=.*\d)(?=.*[A-Z])(?=.*[a-z]).{8,20})

一切正常,直到我在 Internet Explorer 中进行测试,它返回的所有密码都无效。

这是由于此处描述的 Internet Explorer 7 错误IE7 正则表达式问题 - 适用于每个浏览器的正则表达式在 ie7 中不起作用

在关于上述问题的博客文章之后,我看到有些人说,在大多数情况下,正则表达式可以重新设计,以便它可以在 IE7 上运行,但正如我所说,我的正则表达式知识并不是最好的,所以如果有新人如何制作以上在 IE7 上的工作会很棒。

我正在使用 ASP.NET,因此另一个选项是将 EnableClientScript 设置为 False,以便在服务器端检查正则表达式,但如果可能的话,我宁愿先检查客户端。

4

1 回答 1

1

只看你发布的链接。你:

/((?=.{8,20})(?=.*\d)(?=.*[A-Z])(?=.*[a-z]).*)/

此外,按照相同的链接,这也应该有效:

/((?=.+\d)(?=.+[A-Z])(?=.+[a-z]).{8,20})/
于 2013-04-04T09:32:51.500 回答