簡體   English   中英

密碼包含至少6個字符,1個數字,1個字母和任何特殊字符的JavaScript正則表達式

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

我正在這樣嘗試:

(/^(?=.*\\d)(?=.*[az])(?=.*[AZ]).{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" /> 

您需要在正則表達式中的開頭和結尾/中刪除括號。

另外,您可能想將[az][AZ][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); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM