Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 密码的正则表达式必须包含至少八个字符、至少一个数字、大写字母和小写字母以及特殊字符_Javascript_Asp.net_Regex - Fatal编程技术网

Javascript 密码的正则表达式必须包含至少八个字符、至少一个数字、大写字母和小写字母以及特殊字符

Javascript 密码的正则表达式必须包含至少八个字符、至少一个数字、大写字母和小写字母以及特殊字符,javascript,asp.net,regex,Javascript,Asp.net,Regex,我想要一个正则表达式来检查: 密码至少包含八个字符,包括至少一个数字,并包括大写字母和小写字母以及特殊字符,例如,?, 它不能是您的旧密码,也不能包含您的用户名、“密码”、或“网站名” 这是我的验证表达式,用于八个字符,包括一个大写字母、一个小写字母和一个数字或特殊字符 (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$" 如何为编写密码必须是八个字符,包括一个大写字母、一个特殊字符和字母数字字符?您可以将此正则表

我想要一个正则表达式来检查:

密码至少包含八个字符,包括至少一个数字,并包括大写字母和小写字母以及特殊字符,例如

它不能是您的旧密码,也不能包含您的用户名、
“密码”
、或
“网站名”

这是我的验证表达式,用于八个字符,包括一个大写字母、一个小写字母和一个数字或特殊字符

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"

如何为编写密码必须是八个字符,包括一个大写字母、一个特殊字符和字母数字字符

您可以将此正则表达式与多个:

此正则表达式将执行以下规则:

  • 至少有一个大写字母,
    (?=.*A-Z])
  • 至少一个小写英文字母,
    (?=.*a-z])
  • 至少一位数字,
    (?=.[0-9])
  • 至少一个特殊字符,
    (?=.*?[#?!@$%^&*-])
  • 长度至少为八个
    {8,}
    (带锚)

对于@anubhava的回答,这只是一个小小的改进:因为特殊字符仅限于键盘上的字符,所以可以对任何特殊字符使用此选项:

"^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$"
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,10}$"
^(?=.[A-Z])(?=(.[A-Z]){1,})(?=(.[\d]){1,})(?=(.[\W]){1,})(?!.[\s)。{8,}$

此正则表达式将执行以下规则:

  • 至少一个大写英文字母
  • 至少一个小写英文字母
  • 至少一位数字
  • 至少有一个特殊字符
  • 最少八根

至少八个字符,至少一个字母和一个数字:

"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$"
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"

至少八个字符、至少一个字母、一个数字和一个特殊字符:

"^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$"
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,10}$"

至少八个字符,至少一个大写字母、一个小写字母和一个数字:

"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$"
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"

至少八个字符,至少一个大写字母、一个小写字母、一个数字和一个特殊字符:

"^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$"
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,10}$"
最少8个字符,最多10个字符,至少一个大写字母、一个小写字母、一个数字和一个特殊字符:

"^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$"
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,10}$"

导入JavaScript文件
jquery.validate.min.js

您可以使用以下方法:

$.validator.addMethod("pwcheck", function (value) {
    return /[\@\#\$\%\^\&\*\(\)\_\+\!]/.test(value) && /[a-z]/.test(value) && /[0-9]/.test(value) && /[A-Z]/.test(value)
});
  • 至少一个大写英文字母
  • 至少一个小写英文字母
  • 至少一位数字
  • 至少有一个特殊字符

  • 根据我的情况,我很难找到最流行的答案。例如,我的验证在使用字符时失败,例如
    [
    。我对白色列出我的特殊字符不感兴趣,所以我转而利用
    [^\w\s]
    作为测试-简单地说-匹配非单词字符(包括数字)和非空白字符。总之,以下是对我有效的方法

    • 至少
      8个
      字符
    • 至少
      1
      数字字符
    • 至少
      1
      小写字母
    • 至少
      1
      大写字母
    • 至少
      1
      特殊字符


    -涵盖各种情况的简单演示

    正则表达式没有AND运算符,因此编写与有效密码匹配的正则表达式非常困难,因为有效性是由某个、某个或其他东西定义的

    (?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+-]).{6}
    
    但是,正则表达式确实有OR运算符,所以只要应用DeMorgan定理,并编写一个匹配无效密码的正则表达式:

    任何少于八个字符的任何没有数字的任何没有大写字母的或任何没有小写字母的任何没有特殊字符的

    因此:


    如果有任何密码与此匹配,则该密码无效。

    根据您的需要,此模式应该可以正常工作。请尝试此模式

    ^(?=(.*\d){1})(.*\S)(?=.*[a-zA-Z\S])[0-9a-zA-Z\S]{8,}
    
    只需创建一个字符串变量,分配模式,并创建一个布尔方法,如果模式正确,则返回true,否则返回false

    样本:

    String pattern = "^(?=(.*\d){1})(.*\S)(?=.*[a-zA-Z\S])[0-9a-zA-Z\S]{8,}";
    String password_string = "Type the password here"
    
    private boolean isValidPassword(String password_string) {
        return password_string.matches(Constants.passwordPattern);
    }
    
    试试这个:

  • 最少六个字符
  • 至少一个大写字符
  • 至少一个小写字符
  • 至少有一个特殊字符
  • 表达式:

    "/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}/"
    
    "/^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$/"
    
    可选特殊字符:

  • 至少有一个特殊字符
  • 至少一个数字
  • 特殊字符是可选的
  • 最少6个字符,最多16个字符
  • 表达式:

    "/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}/"
    
    "/^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$/"
    
    如果不需要最小和最大条件,则删除
    {6,16}

    • 6是最小字符限制
    • 20是最大字符限制
    • ?=表示匹配表达式

    使用以下正则表达式满足以下条件:

    条件:

  • 最小1个大写字母
  • 最小1个小写字母
  • 最小1个特殊字符
  • 最少1个数字
  • 最少8个字符
  • 最多30个字符
  • 正则表达式:

    /^(?=.[a-z])(?=.[a-z])(?=.*\d)(?=.[#$@!%&*?])[a-Za-z\d#$@!%&*?]{8,30}$/
    
    没有直接回答这个问题,但它真的必须是正则表达式吗

    我曾经做过很多Perl,并且习惯于解决正则表达式的问题。然而,当它们变得更加复杂,出现所有的外观问题和其他怪癖时,你需要编写几十个单元测试来消除所有这些小错误

    此外,正则表达式通常比命令式或函数式解决方案慢几倍

    例如,以下(不是很FP)Scala函数解决原始问题的速度大约是最流行答案的正则表达式的三倍。它的作用也非常明显,您根本不需要单元测试:

    def validatePassword(password: String): Boolean = {
      if (password.length < 8)
        return false
    
      var lower = false
      var upper = false
      var numbers = false
      var special = false
    
      password.foreach { c =>
        if (c.isDigit)       numbers = true
        else if (c.isLower)  lower = true
        else if (c.isUpper)  upper = true
        else                 special = true
      }
    
      lower && upper && numbers && special
    }
    
    def validatePassword(密码:字符串):Bo
    
    ((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%?=*&]).{8,20})
    
    ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
    
    pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
    
    ^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@$!%*?&])([a-zA-Z0-9@$!%*?&]{8,})$
    
    ^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[!@#$%^&*()_+,.\\\/;':"-]).{8,}$
        
    
    /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).*$/
    
    var strongRegex = new RegExp("^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})");
    var mediumRegex = new RegExp("^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})");