正则表达式不工作 - 最少8个字符,1个数字,1个特殊字符和1个大写字母

时间:2017-07-20 09:47:38

标签: javascript regex

我想要一个正则表达式来检查是否检查了至少8个字符,包含1个数字,1个特殊字符和1个大写字母。

function checkPassword(str) {
  var re = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})$/;
  return re.test(str);
}

1 个答案:

答案 0 :(得分:2)

亲吻 - 保持简单 你的字符串长度是8还是更长?没有?测试失败。是?继续。
对字符串运行4个正则表达式测试,每个参数对应一个 4个真实的价值意味着你很高兴。任何虚假值都意味着没有验证 如果您不理解或彻底测试,复杂的正则表达式总会让您遇到奇怪的边缘情况。将其分解为更小的可理解的部分并连续运行测试。你想要正确,不时尚。