加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则 密码 由数字和字母组成, 并且不能为纯字母或纯数字

发布时间:2020-12-14 04:27:18 所属栏目:百科 来源:网络整理
导读:密码由6位以上的字母和数字组成, 至少包含一个字母和数字, 不能由纯数字或字母组成。并且不能为纯数字, 不能为纯字母, 必须包含一个字母和数字。 正则: 1 ^ ( ? ! [ 0 - 9 ] + $ ) [ a - zA Z 9A - Za z ] { 6 , } $ 分开来注释一下: ^匹配一行的开头

密码由6位以上的字母和数字组成, 至少包含一个字母和数字, 不能由纯数字或字母组成。并且不能为纯数字, 不能为纯字母, 必须包含一个字母和数字。

正则:

1
^ ( ? ! [ 0 - 9 ] + $ ) [ a - zA Z 9A - Za z ] { 6 , } $

分开来注释一下:
^匹配一行的开头位置
(?![0-9]+$)预测该位置后面不全是数字
(?![a-zA-Z]+$)预测该位置后面不全是字母
[0-9A-Za-z]{6,10}由6-10位数字或这字母组成
$匹配行结尾位置

测试代码:

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static void main(String[] args) {
		/**
		 * 正则匹配: 由字母和数字组成,但不能为纯数字, 不能为纯字母。
		 * 
		 * 密码由6位以上的字母和数字组成, 至少包含一个字母和数字, 不能由纯数字或字母组成。
		 * 密码验证:"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,}$" 
		 * 
		 */
		Pattern pattern = Pattern.compile("^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]+$");
		String[] test = new String[]{
				"0123","0a","012aBc","Abc0123","ab0123C","012abc3","0a1b2c3d",// 匹配数据
				"","abc","012?&^","abc&(","&(*.","www123   ","www 123" // 违规数据
				};
		
		for(String t : test){
			System.out.println(String.format("%s t match %b",t,pattern.matcher(t).find()));
		}
		
	}

输出结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
0123 match false
0a true
012aBc true
Abc0123 true
ab0123C true
012abc3 true
0a1b2c3d true
false
abc false
012 & ^ false
abc & ( false
( * . false
www123 false
www 123 false

转自:http://bbs.csdn.net/topics/390681908

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读