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

前端之家收集整理的这篇文章主要介绍了正则 密码 由数字和字母组成, 并且不能为纯字母或纯数字前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

密码由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()));
		}
		
	}@H_403_107@ 

输出结果:

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
@H_502_199@ abc false
012 & ^ false
abc & ( false
( * . false
www123 false
www 123 false

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

猜你在找的正则表达式相关文章