javascript - 密码 REGEX 至少 6 个字符,至少 1 个字母和 1 个数字,并且可以包含特殊字符

标签 javascript asp.net regex

我需要一个带有条件的正则表达式:

  • 最少 6 个字符,最多 50 个字符
  • 必须包含 1 个字母
  • 必须包含 1 个数字
  • 可能包含特殊字符,例如!@#$%^&*()_+

目前我有模式:(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{6 ,50})$

但是它不允许特殊字符,有人有一个好的正则表达式吗?

谢谢

最佳答案

也许可以使用单个正则表达式,但这使得很难向用户提供他们没有遵循哪条规则的反馈。像这样的更传统的方法会为您提供反馈,您可以在 UI 中使用该反馈来告诉用户哪些密码规则未得到满足:

function checkPwd(str) {
    if (str.length < 6) {
        return("too_short");
    } else if (str.length > 50) {
        return("too_long");
    } else if (str.search(/\d/) == -1) {
        return("no_num");
    } else if (str.search(/[a-zA-Z]/) == -1) {
        return("no_letter");
    } else if (str.search(/[^a-zA-Z0-9\!\@\#\$\%\^\&\*\(\)\_\+]/) != -1) {
        return("bad_char");
    }
    return("ok");
}

关于javascript - 密码 REGEX 至少 6 个字符,至少 1 个字母和 1 个数字,并且可以包含特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7844359/

相关文章:

c# - 在 ASP.NET 中向页眉添加控件

asp.net - 从具有多个 ADFS 的外部应用程序登录的 Asp.Net 应用程序的 SSO 最佳方法

javascript - 如何触发Push API的pushEvent以显示通知?

javascript - 如何向标题中的 jqGrid 文本字段添加占位符?

javascript - 如何在javascript中更改表格行的背景?

Java String.split 多字符分隔符

regex - 使用 sed 忽略注释 (#),但保持行不变

javascript - 通过 ajax 调用在动态 HTML 上应用 Owl Carousel

asp.net - 一键式 ASP.NET 网络部署包括先决条件?

javascript - RegEx 解析中间的 MIME 消息体。如何?