JS正则:密码强度8位以上,且包含大小写字母、数字、半角英文符号
正则代码
/^(?=.*\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,}$/本正则规则:
包含数字
包含大写字母
包含小写字母
包含英文标点符号
至少8位以上
以上条件必须全部满足,则可以通过验证
正则解读:
/^$/规则
^匹配开始
$匹配结束
注意:在^字符集匹配规则内[],表示取反。
例如html标签匹配 /<[^>]+>/可以匹配<h1>等
/<[^>]+>/.test('<h1>')
//true
(?=.*\d) 规则
此正则参照MDN正则规则中的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正则匹配半角英文符号
测试
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本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!