正则表达式之密码验证
普普通通北漂程序员一枚,CSDN 全国前 4K 名博主
1 人赞同了该文章

要求

密码长度 6-16 位,包含至少一个特殊字符,一个数字,一个大写字母和一个小写字母。

正则表达式

(?=^.{6,16}$)(?=(?:.*?\d){1})(?=.*[a-z])(?=(?:.*?[A-Z]){1})(?=(?:.*?[`·~!@#$%^&*()_+}{|:;'",/?\=\[\]\-\\]){1})(?!.*\s)[0-9a-zA-Z`·~!@#$%^&*()_+}{|:;'",/?\=\[\]\-\\]*$

解释

一些坑

在做特殊字符处理这块,因为涉及到有些字符比如= [ ] - \这四个,需要在前面加\进行转义,才能正常正则识别出来。
特殊字符匹配,后面这段必须也包含前面的匹配代码,即两段`·~!@#$%^&*()_+}{|:;'",/?\=\[\]\-\\都相同:
txt (?=(?:.*?[`·~!@#$%^&*()_+}{|:;'",/?\=\[\]\-\\]){1})(?!.*\s)[0-9a-zA-Z`·~!@#$%^&*()_+}{|:;'",/?\=\[\]\-\\]*$只支持英文状态下的特殊字符,因为发现中文的—和英文的-是两个字符。regexr(强烈推荐这个)