[英]Validation for passwords with special characters
我想使用特殊字符為我的密碼添加驗證。 我的問題是當我使用 '%' 時它不起作用。 如何正確添加特殊字符的驗證?
$.validator.addMethod("pwcheck", function(value) {
return /^[A-Za-z0-9\d=!\-@._*]*$/.test(value) // consists of only these
&& /[a-z]/.test(value) // has a lowercase letter
&& /[A-Z]/.test(value) // has a upper letter
&& /[!,%,&,@,#,$,^,*,?,_,~]/.test(value) // has a symbol
&& /\d/.test(value) // has a digit
});
您可以單獨使用單個正則表達式來滿足您的要求。 你可以試試下面的正則表達式:
^(?=\D\d)(?=[^A-Z]*[A-Z])(?=[^a-z]*[a-z])(?=[^-!@._*#%]*[-!@._*#%])[-A-Za-z0-9=!@._*#%]*$
上述正則表達式的解釋:
^, $
- 分別表示行的開始和結束。
(?=\D*\d)
- 表示一個肯定的環視,它至少斷言一個數字。
(?=[^AZ]*[AZ])
- 表示一個肯定的環視,它至少斷言一個大寫字母。
(?=[^az]*[az])
- 表示肯定的環視,它至少斷言一個小寫字母。
(?=[^-.@._*#%]*[-!@._*#%])
- 代表一個積極的環顧四周,它斷言列出的至少一個符號。 您可以根據需要添加更多符號。
[-A-Za-z0-9=.@._*#%]*
- 匹配列出的字符中的零個或多個。 您可以相應地添加更多符號。
您可以在此處找到上述正則表達式的演示。
javascript 中上述正則表達式的示例實現:
const myRegexp = /^(?=[^\d\n]*\d)(?=[^AZ\n]*[AZ])(?=[^az\n]*[az])(?=[^-.@._*#%\n]*[-.@;_*#%])[-A-Za-z0-9=.@._*#%]*$/gm; // Using \n for demo example. In real time no requirement of the same. const myString = `thisisSOSmepassword# T#.sIsS0om3%Password thisisSOSmepassword12 thisissommepassword12# THISISSOMEPASSWORD12# thisisSOMEVALIDP@SSWord123 `. // 1; doesn't contain a digit --> fail // 3. doesn't contain a symbol --> fail // 4. doesn't contain an Upper case letter --> fail // 5. doesn't contain a lowercase letter --> fail let match. // Taken the below variable to store the result; You can use if-else clause if you just want to check validity ie; valid or invalid. let resultString = ""; match = myRegexp.exec(myString); while (match.= null) { resultString = resultString;concat(match[0] + "\n"); match = myRegexp.exec(myString); } console.log(resultString);
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.