gpt4 book ai didi

使用空格字符进行 JavaScript 密码验证

转载 作者:行者123 更新时间:2023-11-28 20:02:37 25 4
gpt4 key购买 nike

我需要使用 JavaScript 在以下条件下进行密码验证。我的条件:

  1. 至少 0-9 中的一位数字
  2. 至少一个小写字符
  3. 至少一个大写字符
  4. 必须包含至少一个特殊字符
  5. 长度至少 8 个字符,最多 20 个字符
  6. 注意:空格键也被视为特殊字符。

我试过了

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

但是这不起作用。还有其他想法吗?

最佳答案

基本解决方案

处理一组验证规则的最佳方法(在我看来)是为每个规则定义一个正则表达式,然后迭代这些规则并检查它们是否成功。如果任何规则失败,则整个验证失败。

类似这样的事情:

var rules = [
/[0-9]/,//at least one digit from 0-9, could also use \d
/[a-z]/,//at least one lowercase
/[A-Z]/,//at least one uppercase
/[!%&*\s]/,//special characters, add more as needed. note that \s checks for whitespace
/^.{8,20}$///length between 8-20
];

var input = "Something1!";

//validate
var pass = true;
for(var i = 0; i < rules.length; i++){
var rule = rules[i];
if(!rule.test(input)){
pass = false;
break;
}
}

Here is a working example

<小时/>

高级解决方案

您可以进一步扩展此解决方案,以允许将专用错误消息与每个规则关联。您将拥有一个对象数组,而不是一个正则表达式数组 - 每个对象都包含正则表达式规则和错误消息。

例如:

var rules = [{
exp: /[0-9]/,
msg: 'must contain at least one digit'
}, {
exp: /[a-z]/,
msg: 'must contain at least one lowercase'
}, {
exp: /[A-Z]/,
msg: 'must contain at least one uppercase'
}, {
exp: /[!%&*\s]/,
msg: 'must contain at least one special move'
}, {
exp: /^.{8,20}$/,
msg: 'must be 8-20 characters long'
}];

var input = "Something1!";

var pass = true;
for (var i = 0; i < rules.length; i++) {
var rule = rules[i];
if (!rule.exp.test(input)) {
pass = false;
alert("Error: " + rule.msg);//alert the error message
break;
}
}

And here it is in action

关于使用空格字符进行 JavaScript 密码验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21404330/

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