【问题标题】:Regex password validation working fine on regex verification sites but not on mine正则表达式密码验证在正则表达式验证站点上运行良好,但在我的站点上却不行
【发布时间】:2016-11-29 10:10:48
【问题描述】:

我有以下正则表达式代码,它在正则表达式验证码上运行良好,但在我的网站(使用 ASP.NET MVC 构建)上运行良好。它验证长度和数字,但不验证特殊字符的缺失。

我的正则表达式:/^(?=.*[!@@#$&](?=.*[A-Z]))(?=.*[0-9])(?=.*[a-z]).{8,}$/

在我的网站上,Toto1234 被认为很好,但事实并非如此,因为它不包含特殊字符。

【问题讨论】:

  • 你能提供一些具体的例子来说明模式应该/不应该匹配的内容吗?因为您在上面给出的模式与Toto1234 不匹配,并且不会匹配符合您给出的(措辞不佳的)规则的所有可能的密码。
  • @SebastianLenartowicz,感谢您指出这一点。我重写了它以涵盖所有特殊字符。这里是:^(?=.*[AZ])(?=.*?[#?!@$%^&*-])(?=.*[0-9])(?=.*[ az])。{8,}$

标签: asp.net regex asp.net-mvc asp.net-mvc-3 asp.net-mvc-4


【解决方案1】:

基本上我正在检查我的视图,但没有对我的模型进行任何更改。我的模型有一个不检查特殊字符的正则表达式。但在我看来,有一个脚本可以检查密码是否与正则表达式匹配。

编辑:更明确的解决方案是确保视图模型或类使用正确的正则表达式进行装饰。在您尝试提交表单之前,临时查看我的工作中的任何正则表达式检查和/或验证。

在我的情况下,因为我必须使用不同的正则表达式(在我看来 -- 通过 jquery -- 和我的模型),客户端验证有效,因为我有正确的正则表达式。但服务器端验证没有。我必须确保我的课堂上也有正确的正则表达式。

希望这更清楚。

【讨论】:

  • SO 不是论坛。请提供有关您如何解决问题的具体信息,以便其他人受益,并使用复选标记将问题标记为“已回答”。
  • @SebastianLenartowicz,我知道 SO 不是论坛。你不需要提醒我。问题不在我发布的正则表达式中,而是在我的代码中。它与asp.net MVC 相关。所以如果你有 MVC 的背景,我想你可能已经明白我所说的了。我会更新我的答案,但我想知道你期待什么样的细节。
猜你喜欢
  • 2011-05-06
  • 2016-10-19
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多