【问题标题】:Javascript regular expression for "at least X characters, have a capital letter and a number"“至少 X 个字符,有一个大写字母和一个数字”的 Javascript 正则表达式
【发布时间】:2011-08-26 12:46:37
【问题描述】:

我知道密码字段的正则表达式可以完美运行,即长度必须至少为 6 个字符,包含大写字母、数字并且可以包含特殊字符。当我尝试在 Javascript 中应用这个正则表达式时,它似乎没有验证。我的Javascript函数如下。

function (word) {
    var weakRegEx = new RegExp('(?=^.{6,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$');
    var result = weakRegEx.test(word);
    return result;

【问题讨论】:

  • 欢迎来到 SO。这是纯 Javascript,其中没有 jQuery。相应地重新标记。
  • 可能值得查看this other SO post,它的功能与您正在寻找的类似。另外,我建议使用 gskinner.com 并确保它首先与您想要的匹配。
  • 顺便说一句,我讨厌那些试图告诉我必须在密码中使用哪种字符的网站。我通常有足够的理由离开该网站,再也不回来。
  • 您肯定希望用户拥有一个安全密码吗?声明密码中必须包含大写字母和数字会增加密码的复杂性。

标签: javascript regex


【解决方案1】:

由于您正在编写字符串文字,因此您需要转义 \ 字符。

您应该改用正则表达式:

var weakRegEx = /(?=^.{6,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/;

【讨论】:

  • 我的测试中仍然匹配“密码”,它不应该也需要一个数字吗?
猜你喜欢
  • 2016-12-14
  • 1970-01-01
  • 2015-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 1970-01-01
相关资源
最近更新 更多