正則代碼
/^(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F])[\da-zA-Z\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]{8,}$/
本正則規則[1]:
-
包含數字
-
包含大寫字母
-
包含小寫字母
-
包含英文標點符號
-
至少8位以上
以上條件必須全部滿足,則可以通過驗證
正則解讀:
/^$/規則
^匹配開始
$匹配結束
注意:在^字符集匹配規則內[],表示取反,
例如html標簽匹配 /<[^>]+>/可以匹配<h1>等
/<[^>]+>/.test('<h1>')
//true
(?=.*\d) 規則
此正則參照MDN正則規則[2]中的x(?=y)的使用說明:
匹配'x'僅僅當'x'后面跟著'y'.這種叫做先行斷言,
例如,/Jack(?=Sprat)/會匹配到'Jack'僅當它后面跟著'Sprat',/Jack(?=Sprat|Frost)/匹配‘Jack’僅當它后面跟著'Sprat'或者是‘Frost’,但是‘Sprat’和‘Frost’都不是匹配結果的一部分,
[\da-zA-Z\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]
JS正則匹配半角英文符號[3]
測驗
let reg = /^(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F])[\da-zA-Z\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]{8,}$/;
reg.test('abcd6789&*(')
//false
reg.test('abcdD6789&*(')
//true
reg.test('abcd')
//false
reg.test('abcdABCD!@')
//false
reg.test('abcdABCD23456')
//false
reg.test('abcdABCD23456..')
//true
參考:
JS正則運算式必須包含數字、字母、特殊字符 ??
MDN 正則規則 ??
JS正則匹配半角英文符號 ??
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/182118.html
標籤:其他
上一篇:事件驅動及事件處理
