繁体   English   中英

jQuery验证中的正则表达式 - jQuery中的单引号问题

[英]Regex in jQuery Validation - Single quote issue in jQuery

我有一个正则表达式来验证密码以包含数字,小写和大写字符。

下面的一个工作正常。 但是当我在jQuery验证中使用它时:

txtPassword: {
    required: true,
    regex: Regex
}

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

但问题是单引号'在Javascript。 有人可以帮我解决这个问题吗? 谢谢。

在这个正则表达式中有几件事需要修复:

  • 在您的前瞻检查密码中,您有一个没有量词的句点。 因此,它总是会失败。 例如,对于数字检查,您应该(?=.*\\d)而不是(?=.\\d)
  • 您不使用正斜杠/转义字符,而是使用反斜杠\\ 你在最后一个字符类中使用forwardslash错误地转义了它。
  • 字符类中唯一的特殊字符或元字符是结束括号( ] ),反斜杠( \\ ),插入符号( ^ )和连字符( - )。 因此,这不是单引号。 罪魁祸首是你的插入符号没有逃脱。

试试这个正则表达式,其中插入符号^而不是引用'

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

我假设你的问题,你的意思是用于验证密码的Regexp:

  • 至少1个号码
  • 至少1个较低的字符
  • 至少1个大写字符
  • 至少有1个特殊字符!@#$%^&*()_+}{":;'?/>.<,
  • 长度在8到16个字符之间

如果是这样,请使用明确的要求更新您的问题。


RegexPal中使用正则表达式


基于jQuery的代码。 在这里摆弄这个:

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');
}​

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM