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

mah*_*esh 2 javascript regex jquery

我正在尝试这样:

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

但它不起作用。

Pra*_*lan 5

你可以使用/^(?=.*\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');
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" id="text" />
Run Code Online (Sandbox Code Playgroud)

或者您也可以使用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');
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" id="text" />
Run Code Online (Sandbox Code Playgroud)