Javascript jQuery验证中的正则表达式-jQuery中的单报价问题

Javascript jQuery验证中的正则表达式-jQuery中的单报价问题,javascript,jquery,asp.net,regex,jquery-validate,Javascript,Jquery,Asp.net,Regex,Jquery Validate,我有一个正则表达式来验证密码是否包含数字、小写和大写字符 下面的那个很好用。但当我在jQuery验证中使用它时: txtPassword: { required: true, regex: Regex } Regex = (?=^.{8,16}$)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_+}{":;/'?/>.<,])(?!.*\s).*$ 但问题是Javasc

我有一个正则表达式来验证密码是否包含数字、小写和大写字符

下面的那个很好用。但当我在jQuery验证中使用它时:

txtPassword: {
    required: true,
    regex: Regex
}

Regex = (?=^.{8,16}$)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_+}{":;/'?/>.<,])(?!.*\s).*$

但问题是Javascript中的单引号
。有人能帮我解决这个问题吗?谢谢。

在这个正则表达式中有几个问题需要解决:

  • 在前瞻性检查密码时,有一个句点没有 量词。因此,它将始终无法通过该检查。例如,对于 数字检查,您应该使用
    (?=.*\d)
    而不是
    (?=.\d)
  • 不能用正斜杠转义字符,而是 使用反斜杠
    \
    。您已使用一个 最后一个字符类中的正斜杠
  • 字符中唯一的特殊字符或元字符 类是结束括号(
    ]
    ),反斜杠(
    \
    ),插入符号(
    ^
    ) 和连字符(
    -
    )。因此,这不是由于单一报价。罪魁祸首是你没有逃脱的爱抚
尝试此正则表达式,其中插入符号
^
被转义,而不是引号

(?=^.{8,16}$)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\^&*()_+}{":;'?/>.<,])(?!.*\s)^.*$

(?=^.{8,16}$)(?=.*\d)(?=.[a-z])(?=.[a-z])(?=.[!@$%\^&*():”?/>。您的正则表达式不符合密码要求,因此“工作不正常”"例如,在lookaheads中,您的点没有用于小写检查、大写检查和数字检查的量词。此外,我相信您的密码中还需要至少1个特殊字符。因此,请澄清您想要匹配的模式并给出示例。Kash。感谢您的即时响应。我尝试了您使用的正则表达式如上所述,它在Regexpal中运行良好。但是,在JQuery(asp.net页面)中运行时,它仍然会一直失败。当我使用JQuery验证程序时,regex:(?=^.{8,16}$)(?=.*\d)(?=.[a-z])(?=.[!@$%^&*.+}{:'?/>。@user1678741-您不需要反斜杠来表示
在字符类中。请尝试我答案中的代码。按照注释代码中所示的方式使用密码字段。
var regex = /(?=^.{8,16}$)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\^&*()_+}{":;'?/>.<,])(?!.*\s)^.*$/g;
//if(regex.test($('#txtPassword').val())){ alert('Match'); }else{alert('No Match')}
if (regex.test('P@sSw0rD')) {
    alert('Match');
} else {
    alert('No Match');
}​