![](/img/trans.png)
[英]Password REGEX with min 6 chars, at least one letter and one number and may contain special characters
[英]Allowing more then one special chars in password
我有測試以下規則的正則表達式,
我的嘗試是這樣,
/^([a-zA-Z+]+[0-9+]+[!@#$%^&*])$/
在大多數情況下,此方法都可以正常工作,除非我添加一個以上的字母數字字符。
測驗
最后一個測試應該通過,但失敗。 我知道哪里出了問題,但無法擺脫正則表達式的魔咒。 我對什么是錯的想法是
[0-9+] // This + sign shows that you can have more then 1 of that range of numerics
哪里,
[!@#$%^&*] // Does not have the + sign
我試過了,
[!@#$%^&*+] // Does not have the + sign
[!@#$%^&*]+ // Does not have the + sign
兩者都不起作用。 我想念什么?
為什么需要將它們全部融合到一個正則表達式中?
function test_password(password) {
if (password.length < 2) return false; // Minimum length
if (!/[0-9]/g.test(password)) return false; // Needs a number
if (!/[a-z]/gi.test(password)) return false; // Needs a letter
if (!/[^a-z0-9]/gi.test(password)) return false; // Needs a special char
return true;
}
根據您的實際需求,根據您對情況的混亂描述,這里有兩個正則表達式,希望對您有所幫助。 第一個密碼要求密碼至少以1個字母字符開頭,其次為至少1個數字字符,然后至少為1個特殊字符。
/^([a-zA-Z]+[0-9]+[!@#$%^&*]+)$/
如果您不需要字符按特定順序排列,則可以嘗試以下正則表達式:
/(?=[^a-zA-Z]*[a-zA-Z])(?=[^0-9]*[0-9])(?=[^!@#$%^&*]*[!@#$%^&*])/
該密碼僅要求密碼中以任何順序出現至少1個字母字符,至少1個數字字符和至少1個特殊字符。
嘗試以下方法。 如果將字符放在首位,將數字放在第二位,然后將字母數字放在第二位,它將起作用。
/ ^ [a-zA-Z] + [1-9] + [!@#$%^&*] + $ /
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.