正则表达式验证6~30位数字,下划线,中划线,字母任意两种混合的密码验证策略
Posted zaid
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式验证6~30位数字,下划线,中划线,字母任意两种混合的密码验证策略相关的知识,希望对你有一定的参考价值。
需求要求:
- 位数为6~30位
- 至少包含字母、数字、下划线
_
、中划线-
中的两种
正则表达式:
js表达式:
^(?!^[\d]+$)(?!^[-]+$)(?!^[_]+$)(?!^[a-zA-Z]+$)[\w-]6,30$
java表达式-字符串:
"^(?!^[\\d]+$)(?!^[-]+$)(?!^[_]+$)(?!^[a-zA-Z]+$)[\\w-]6,30$"
解析:
至少四种中的两种也可以解释为为不是纯数字、不是纯字母、不是纯下划线,不是纯中划线
测试用例:
123456a(匹配)
_12345a(匹配)
_123-45a(匹配)
123456 (6位纯数字,没有匹配)
abcdef (6位纯字母,没有匹配)
------ (6位纯中划线,没有匹配)
______ (6位纯下划线,没有匹配)
123456789012345678901234567890a(31位字母数字组合,没有匹配)
_123-45a+(9位四种混搭多个加号,没有匹配)
_12%3-45a(9位四种混搭多个百分比号,没有匹配)
a-_1d(5位四种混搭,没有匹配)
以上是关于正则表达式验证6~30位数字,下划线,中划线,字母任意两种混合的密码验证策略的主要内容,如果未能解决你的问题,请参考以下文章
求PHP用户名注册验证正则表达式(6-16位字符,字母开头,只包含字母数字下划线)可支持中文
java中的正则表达式问题 怎么验证密码必须由字母 数字或下划线开头,密码可以随便组合