gpt4 book ai didi

javascript - 正则表达式不验证

转载 作者:行者123 更新时间:2023-11-30 13:19:19 25 4
gpt4 key购买 nike

我在 javascript 中有以下用于密码验证的正则表达式:

^[!#\$%\(\)\*,\-\./:;=\?@\[\\\]\^_`\{\|\}~a-zA-Z0-9]*$

<script type="text/javascript">
var regex = "^[!#\$%\(\)\*,\-\./:;=\?@\[\\\]\^_`\{\|\}~a-zA-Z0-9]*$";
var value = 'test';
if (value.match(regex) == false) {
alert('password invalid');
}
</script>

正则表达式规则是:

  • 12-25 个字符
  • 至少一个大写字母
  • 至少一个小写字母
  • 至少一位数字
  • 至少一个特殊字符:!#$%()*,-./:;=?@[]^_`{|}~

但是,正则表达式似乎不起作用。它匹配任何字符。我该如何解决这个问题?

最佳答案

使用积极的前瞻性,您的正则表达式可以在一次匹配调用中得到验证。使用此正则表达式:

 var regex =
/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!#$%()\*,/:;=?@\[\\\]\^_`{}|.-])^.{12,25}$/;
var value = 'aaaAaaaaa?test2';
if (!value.match(regex))
document.writeln('invalid');
else
document.writeln('valid');

See this code live in action

关于javascript - 正则表达式不验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10854488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com