我嘗試驗證使用以下質量要求密碼驗證的正則表達式
對我的servlet密碼○密碼必須包含一個數字和以下
特殊字符之一:@#$%^ & *( )
說明:1!和!1都是有效的密碼
正則表達式的香港專業教育學院一直在努力去工作
?=.*[a-zA-Z])(?=.*\\d)(?=.*[[email protected]#$%&*()_+=|<>?{}\\[\\]~-])
,但它並不需要1!
或!1
我嘗試驗證使用以下質量要求密碼驗證的正則表達式
對我的servlet密碼○密碼必須包含一個數字和以下
特殊字符之一:@#$%^ & *( )
說明:1!和!1都是有效的密碼
正則表達式的香港專業教育學院一直在努力去工作
?=.*[a-zA-Z])(?=.*\\d)(?=.*[[email protected]#$%&*()_+=|<>?{}\\[\\]~-])
,但它並不需要1!
或!1
爲什麼不「簡單「像這樣,
/^((?:\d[[email protected]#$%^&*()])|(?:[[email protected]#$%^&*()]\d))$/
[!@#$%^ * &()]特殊字符
\ d一個數字
(?:...)沒有捕獲組
| 「或」 操作 ^(string)開頭 $(字符串)結束
如果只有這些特殊字符一個只有一個號碼應該匹配。
迷你的Javascript演示:
var items = ["!1","1!","123123","123!","[email protected]"]
for (var idx in items){
var item = items[idx];
document.write(item +" => "+ (item.match(/^((?:\d[[email protected]#$%^&*()]){1}|(?:[[email protected]#$%^&*()]\d))$/)||"nomatch"));
document.write("<br />");
}
這是匹配'1 2 @ 3' – Toto
現在它應該匹配! ,這是一個小括號錯誤。 :) –
嘗試https://regex101.com/r/pB3qE0/1 – ergonaut