javascript正则表达式密码中包含atmost 5个字符

javascript正则表达式密码中包含atmost 5个字符,javascript,regex,passwords,Javascript,Regex,Passwords,我试图在JavaScript中实现最大大小写以进行密码验证 ((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{5,20}) 我有一个场景,在密码中用户应该输入最多5个字符(a-z,a-z),密码长度没有限制 刀剑长度不限 除了(a-z,a-z),没有限制 字符(a-z,a-z)将在密码中包含atmost 5。仅此而已。顺序无关紧要 我试过/[^A-Z,A-Z]*(?:[A-Z,A-Z][^A-Z,A-Z]*){0,5}/ 但它不起作用。 请帮忙你搜索过了

我试图在JavaScript中实现最大大小写以进行密码验证

((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{5,20})
我有一个场景,在密码中用户应该输入最多5个字符(a-z,a-z),密码长度没有限制

  • 刀剑长度不限
  • 除了(a-z,a-z),没有限制
  • 字符(a-z,a-z)将在密码中包含atmost 5。仅此而已。顺序无关紧要
  • 我试过
    /[^A-Z,A-Z]*(?:[A-Z,A-Z][^A-Z,A-Z]*){0,5}/

    但它不起作用。
    请帮忙

    你搜索过了吗?很明显,这是一个复制品


    您只需计算密码中的字符数,如下所示:

    if(password.match(/[a-zA-Z]/g).length > 5){ /* reject */ }
    

    您可以使用下面的正则表达式进行密码验证

    ((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{5,20})
    
    它验证了:

  • 必须控制!数字[0-9]
  • 一个小写字符[a-z]
  • 一个大写字符[A-Z]
  • 一个符号[@#$%]
  • 密码长度必须介于[5-20]之间

  • 将其分解并逐步解决

    仅字母表-定义您的字符集

    /[A-Za-z]/
    
    最大长度为5-使用量词

    /[A-Za-z]{0,5}/
    
    不允许有其他内容-使用^and将其包装$

    /^[A-Za-z]{0,5}$/
    

    我不知道你想问什么。这类事情的一般建议是:不要尝试用一个正则表达式来做,不要尝试用正则表达式来做每个测试。他希望密码长度与用户想要的一样长,但少于或等于5个字符[a-zA.Z]。我需要一个正则表达式来测试我的“密码”,以包含最多5个字母(a-Z,a-Z)以任意顺序。用户可以输入任意数量和顺序的其他内容拒绝>5?类型不匹配?@iquellis不,这正是要求<代码>字符(a-z,a-z)将在密码中包含atmost 5。不止这些。Oops,是的,你是对的。正在考虑密码策略或类似的东西。这是一个regex标志
    g
    是全局标志,允许您仅查找一个的所有匹配项。(请参阅)我需要一个正则表达式来测试我的“密码”是否包含最多5个字母(a-z,a-z)。用户可以按任意数字和顺序输入其他内容。我可以使用特定正则表达式而不是组合正则表达式吗?你能举个例子说明你的密码是什么样子吗?@SudhanshuAgarwalI需要一个正则表达式来测试我的“密码”是否包含最多5个字母(a-z,a-z)在任何序列中。用户可以输入任何数字和序列中的其他内容。我可以根据我的要求获得特定的正则表达式吗?这将只测试最多有5个字符的字符串,没有其他输入。但在我的情况下,最多有5个字符和其他输入的任何数字或序列对不起,伙计,我一开始不理解你的问题。Bellian的解决方案是最好的,但您需要再做一次检查,以防password.match(/[a-zA-Z]/g)在密码中找不到任何a-zA-Z字符时返回null