JavaScript正则表达式密码包含至少6个字符,1个数字,1个字母,任何特殊字符

JavaScript regex for password containing at least 6 characters, 1 number, 1 letter, any special characters

本文关键字:1个 数字 特殊字符 任何 字符 密码 正则表达式 包含 6个 JavaScript      更新时间:2023-09-26

我在尝试:

(/^(?=.*'d)(?=.*[a-z])(?=.*[A-Z]).{6,}$/)

您可以使用/^(?=.*'d)(?=.*[a-zA-Z])(?=.*[!@#$%^&*()_+'-='[']{};':"''|,.<>'/?]).{6,}$/

  1. (?=.*'d)至少一个数字
  2. (?=.*[a-zA-Z])至少代表一个字母
  3. (?=.*[!@#$%^&*()_+'-='[']{};':"''|,.<>'/?])用于至少一个特殊字符

使用 match() 查找模式

$('#text').keyup(function() {
  $(this).css('border', this.value.match(/^(?=.*'d)(?=.*[a-zA-Z])(?=.*[!@#$%^&*()_+'-='[']{};':"''|,.<>'/?]).{6,}$/) ? '5px solid green' : '5px solid red');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" id="text" />

或者您也可以使用 test() 查找匹配的

$('#text').keyup(function() {
  var re = new RegExp(/^(?=.*'d)(?=.*[a-zA-Z])(?=.*[!@#$%^&*()_+'-='[']{};':"''|,.<>'/?]).{6,}$/);
  $(this).css('border', re.test(this.value) ? '5px solid green' : '5px solid red');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" id="text" />

您需要删除正则表达式中开始和结束/周围的括号。

另外,您可能想要将[a-z][A-Z]合并到[a-zA-Z]中,以便不必找到大写字母和小写字母,只需找到两者中的一个。

尝试使用String.prototype.match

var str1 = "abc1e.";
var str2 = "abc1e ";
// match special character; any character not digit , 
// not any alphanumeric character , including `_` , 
// not space character
var res1 = str1.match(/[^'d|'w|'s]/i);
// if match found , concat digit , alphanumeric character
// if resulting array length is 6 , return `true` , else return `false`
res1 = !!res1 ? res1[0].concat(str1.match(/'d+|'w+/i)).length === 6 : false;
var res2 = str2.match(/[^'d|'w|'s]/i);
res2 = !!res2 ? res2[0].concat(str1.match(/'d+|'w+/i)).length === 6 : false;
console.log(res1, res2);