在ReactJS中验证密码的正则表达式

rpppsulh  于 2023-03-22  发布在  React
关注(0)|答案(5)|浏览(181)

我们可以在reactJS中对密码验证进行regex模式检查吗?
由于我是reactJS的新手,所以我需要regex模式来验证密码
以下是validating password条件
a)密码应包含一个大写字母
B)以特殊字符@#开头
c)不应包含任何元音a,e,i,o,u字母
d)应为字母数字
e)密码长度应在range 8 to 14之间

2jcobegt

2jcobegt1#

最简单的方法是分别检查所有规则。
有一个函数是我为你写的:

function password_validate(password) {
    var re = {
        'capital' : /[A-Z]/,
        'digit'   : /[0-9]/,
        'except'  : /[aeiou]/,
        'full'    : /^[@#][A-Za-z0-9]{7,13}$/
    };
    return re.capital .test(password) && 
           re.digit   .test(password) && 
          !re.except  .test(password) && 
           re.full    .test(password);
}

或者在一行中使用相同的函数:

function password_validate(p) {
    return /[A-Z]/.test(p) && /[0-9]/.test(p) && !/[aeiou]/.test(p) && /^[@#][A-Za-z0-9]{7,13}$/.test(p);
}
xuo3flqw

xuo3flqw2#

这个正则表达式将工作:
^[@#](?=.{7,13}$)(?=\w{7,13})(?=[^aeiou_]{7,13})(?=.*[A-Z])(?=.*\d)

说明

^[@#]@#开头
现在我们可以这样添加一些条件:
(?=condition)(?=condition)(?=condition)
这意味着“匹配条件,但之后在原始匹配点继续匹配”。
您可以添加任意多个条件,这将是一个“and”
(?=.{7,13}$)密码长度应介于8到14之间
(?=\w{7,13})应该是字母数字。
(?=[^aeiou_]{7,13})不应包含\w匹配的任何元音字母a、e、i、o、u或下划线
(?=.*[A-Z])密码应包含大写字母
(?=.*\d)应为字母数字,因此应包含数字
Demo

xggvc2p6

xggvc2p63#

如果你想一次检查所有的规则-试试这个公式:

^([@#](?=[^aeiou]{7,13}$)(?=[[:alnum:]]{7,13}$)(?=.*[A-Z]{1,}.*$).+)$

Demo

xxe27gdn

xxe27gdn4#

标准1-/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})/.test(paswrd)

ulydmbyx

ulydmbyx5#

password_validate = (password) => {
    var re = {
        capital: /(?=.*[A-Z])/,
        length: /(?=.{7,40}$)/,
        specialChar: /[ -\/:-@\[-\`{-~]/,
        digit: /(?=.*[0-9])/,
    };
    return (
        re.capital.test(password) &&
        re.length.test(password) &&
        re.specialChar.test(password) &&
        re.digit.test(password)
    );
};

1./(?=.[A-Z])/-将检查至少一个大写字符
1./(?=.{7,40}$)/-将检查7到40之间的字符长度
1./[ -/:-@[-`{-~]/-将检查至少一个符号
1./(?=.
[0-9])/-将检查至少一个数字

相关问题