1. 必须包含大小写字母和数字,长度8到20位
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{8,20}$/
2. 必须包含大小写字母,数字和特殊字符,长度8到20位
写法一:
缺点:部分特殊字符在正则表达式有特殊含义,需要对特殊字符转义
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[~!@&%#_])[a-zA-Z0-9~!@&%#_]{8,20}$/
写法二:
利用ASCII码十六进制表示特殊字符
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E])[a-zA-Z0-9\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]{8,20}$/