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

3

我们能在 reactJS 中进行 密码验证正则表达式 模式检查吗?

由于我是新手,需要使用 正则表达式 模式来验证密码

以下是验证密码条件

a) 密码应包含一个大写字母

b) 它应该以特殊字符@#开头

c) 它不应包含任何元音字母a,e,i,o,u

d) 它应为字母数字混合

e) 密码的长度应在8到14之间


我没有时间尝试上述内容,因为我因个人工作而短缺时间交付其他任务。 - Sekar Raj
同意 @aryamccarthy - DexJ
5个回答

4
最简单的方法是单独检查所有规则。
这是我为您编写的函数:
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);
}

不要为那些没有表现出解决问题的努力的用户提供答案,SO不是一个编写代码的网站 - Pedro Lobito
@PedroLobito,这是您的个人立场还是网站上有一些规定规则? - Sergey Khalitov
https://meta.stackoverflow.com/questions/266270/specific-warnings-to-newbies-about-homework-code-writing-please-debug-and-sscce - Pedro Lobito
2
@PedroLobito,好的,这是一群人的个人立场,包括你...这不是官方立场...所以,请不要强加给我... - Sergey Khalitov

2

这个正则表达式可以工作:

^[@#](?=.{7,13}$)(?=\w{7,13})(?=[^aeiou_]{7,13})(?=.*[A-Z])(?=.*\d)

解释

^[@#]@# 开始。

现在我们可以这样添加一些条件:

(?=condition)(?=condition)(?=condition)

这意味着“匹配条件,但在原始匹配点继续匹配。”

您可以添加任意多个条件,并且这将是一个“与”操作。

(?=.{7,13}$) 密码长度应该在8到14之间。

(?=\w{7,13}) 它应该是字母数字组合。

(?=[^aeiou_]{7,13}) 它不应该包含任何元音字母 a、e、i、o、u 或下划线,它由 \w 匹配。

(?=.*[A-Z]) 密码应该包含一个大写字母。

(?=.*\d) 它应该是字母数字组合,因此它应该包含一个数字。

演示


1
如果你想一次性检查所有规则,可以尝试以下公式:
^([@#](?=[^aeiou]{7,13}$)(?=[[:alnum:]]{7,13}$)(?=.*[A-Z]{1,}.*$).+)$

演示


0
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)
    );
};

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

1
请添加一些解释,而不仅仅是发布代码。 - user67275

0

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



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接