使用JavaScript进行正则表达式密码验证

使用JavaScript进行正则表达式密码验证,javascript,jquery,regex,validation,Javascript,Jquery,Regex,Validation,我需要在站点上验证(并确认)新密码。我需要测试一些标准,我正在寻找最好的方法,使用jQuery 这些准则是: 必须至少包含8个字符,最多包含12个字符 至少应具备以下三项:A.大写字母;B.小写字母;C.数字字符;D.标点符号 编辑: 下面的regexp是我目前用来实现这一点的 regexp/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*(_|[^\w])).+$/ 然而,当我只需要四种类型中的三种(哪三种都不重要)时,检查以确保所有四种类型都存在。有人能建议如何改进

我需要在站点上验证(并确认)新密码。我需要测试一些标准,我正在寻找最好的方法,使用jQuery

这些准则是:

  • 必须至少包含8个字符,最多包含12个字符
  • 至少应具备以下三项:A.大写字母;B.小写字母;C.数字字符;D.标点符号
  • 编辑: 下面的regexp是我目前用来实现这一点的

    regexp/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*(_|[^\w])).+$/
    
    然而,当我只需要四种类型中的三种(哪三种都不重要)时,检查以确保所有四种类型都存在。有人能建议如何改进我的正则表达式以实现这一点吗

    更新
    我还没有弄明白如何实现这一点,但想到了一些场景。在我看来,应该使用5个置换,并使用and和OR运算符。然而,我不知道如何在正则表达式中做到这一点。我找错人了吗?

    这是一个用javascript编写的密码验证程序的网站:


    好的,在玩了一会儿之后,下面是解决方案:

    regexp/(^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*(_|[^\w])).+$)|(^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+$)|(^(?=.*[a-z])(?=.*[A-Z])(?=.*(_|[^\w])).+$)|(^(?=.*[A-Z])(?=.*\d)(?=.*(_|[^\w])).+$)|(^(?=.*[a-z])(?=.*\d)(?=.*(_|[^\w])).+$)/
    

    jQUery不会帮助您验证规则集,但您可以使用它检索密码字段的值。你需要帮助做什么?(检索字段内容并显示结果或验证规则?)。我从来没有打算让任何人为我写任何东西,只是想推荐一个特定的插件,如果有的话。