php密码验证正则表达式(8位长度限制)
|
1
2
3
4
5
6
7
|
<?php //密码验证 $password = "zongzi_Abc_oo13a2";
$n = preg_match_all("/^[a-zA-Z\d_]{8,}$/",$password,$array);
//长度是8或更多 var_dump($array);
?> |
python密码验证正则表达式
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#encoding=utf-8 import re
def checklen(pwd):
return len(pwd)>=8
def checkContainUpper(pwd):
pattern = re.compile(\'[A-Z]+\')
match = pattern.findall(pwd)
if match:
return True
else:
return False
def checkContainNum(pwd):
pattern = re.compile(\'[0-9]+\')
match = pattern.findall(pwd)
if match:
return True
else:
return False
def checkContainLower(pwd):
pattern = re.compile(\'[a-z]+\')
match = pattern.findall(pwd)
if match:
return True
else:
return False
def checkSymbol(pwd):
pattern = re.compile(\'([^a-z0-9A-Z])+\')
match = pattern.findall(pwd)
if match:
return True
else:
return False
def checkPassword(pwd):
#判断密码长度是否合法
lenOK=checklen(pwd)
#判断是否包含大写字母
upperOK=checkContainUpper(pwd)
#判断是否包含小写字母
lowerOK=checkContainLower(pwd)
#判断是否包含数字
numOK=checkContainNum(pwd)
#判断是否包含符号
symbolOK=checkSymbol(pwd)
print(lenOK)
print(upperOK)
print(lowerOK)
print(numOK)
print(symbolOK)
return (lenOK and upperOK and lowerOK and numOK and symbolOK)
def main():
if checkPassword(\'Helloworld#123\'):
print(\'检测通过\')
else:
print(\'检测未通过\')
if __name__ == \'__main__\':
main()
|
java密码验证正则表达式
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
/** * @ClassName: RexTest * @Description: TODO * @author BMR * @date 2016年3月28日 上午11:09:17 */public class RexTest {
/**
* 正则表达式验证密码
* @param input
* @return
*/
public static boolean rexCheckPassword(String input) {
// 6-20 位,字母、数字、字符
//String reg = "^([A-Z]|[a-z]|[0-9]|[`-=[];,./~!@#$%^*()_+}{:?]){6,20}$";
String regStr = "^([A-Z]|[a-z]|[0-9]|[`~!@#$%^&*()+=|{}\':;\',\\\\[\\\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“\'。,、?]){6,20}$";
return input.matches(regStr);
}
public static void main(String[] args){
System.out.println("rexCheckPassword is: "+ rexCheckPassword("14`~!@#$%^&*(\\)+=|{}"));
}
|
输出结果:
rexCheckPassword is: true
网友提出的问题:
正则表达式校验密码
1、密码必须由数字、字符、特殊字符三种中的两种组成;
2、密码长度不能少于8个字符;
满足以上两点,应该怎么实现?
(?!^\\d+$)不能全是数字
(?!^[a-zA-Z]+$)不能全是字母
(?!^[_#@]+$)不能全是符号(这里只列出了部分符号,可自己增加,有的符号可能需要转义)
.{8,}长度不能少于8位
合起来就是
(?!^\\d+$)(?!^[a-zA-Z]+$)(?!^[_#@]+$).{8,}
完整的js正则表达式:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
//强:字母+数字+特殊字符 ^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&*]+$)(?![\d!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$
//中:字母+数字,字母+特殊字符,数字+特殊字符 ^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$
//弱:纯数字,纯字母,纯特殊字符 ^(?:\d+|[a-zA-Z]+|[!@#$%^&*]+)$
//校验是否全由数字组成 function isDigit(s)
{ var patrn=/^[0-9]{1,20}$/;
if (!patrn.exec(s)) return false
return true
} //校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串 function isRegisterUserName(s)
{ var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
if (!patrn.exec(s)) return false
return true
} function isRegisterUserName(s)
{ var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
if (!patrn.exec(s)) return false
return true
} //校验用户姓名:只能输入1-30个以字母开头的字串 Javascript代码 function isTrueName(s)
{ var patrn=/^[a-zA-Z]{1,30}$/;
if (!patrn.exec(s)) return false
return true
} }} //校验密码:只能输入6-20个字母、数字、下划线 function isPasswd(s)
{ var patrn=/^(\w){6,20}$/;
if (!patrn.exec(s)) return false
return true
} //校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-” function isTel(s)
{ //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/; var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
} //校验手机号码:必须以数字开头,除数字外,可含有“-” function isMobil(s)
{ var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
} //校验邮政编码 function isPostalCode(s)
{ //var patrn=/^[a-zA-Z0-9]{3,12}$/; var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
if (!patrn.exec(s)) return false
return true
} //校验搜索关键字 function isSearch(s)
{ var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;\'\,.<>/?]{1}[^`~!@$%^&()+=|\\\]
[\]\{\}:;\'\,.<>?]{0,19}$/;
if (!patrn.exec(s)) return false
return true
} function isIP(s) //by zergling
{ var patrn=/^[0-9.]{1,20}$/;
if (!patrn.exec(s)) return false
return true
} |
正则表达式
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
^\\d+$ //非负整数(正整数 + 0)
^[0-9]*[1-9][0-9]*$ //正整数
^((-\\d+)|(0+))$ //非正整数(负整数 + 0)
^-[0-9]*[1-9][0-9]*$ //负整数
^-?\\d+$ //整数
^\\d+( //非负浮点数(正浮点数 + 0)
^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$ //正浮点数 ^((-\\d+( //非正浮点数(负浮点数 + 0)
^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //负浮点数 ^(-?\\d+)( //浮点数
^[A-Za-z]+$ //由26个英文字母组成的字符串
^[A-Z]+$ //由26个英文字母的大写组成的字符串
^[a-z]+$ //由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //由数字和26个英文字母组成的字符串
^\\w+$ //由数字、26个英文字母或者下划线组成的字符串
^[\\w-]+( //email地址
^[a-zA-z]+://( //url
^[A-Za-z0-9_]*$ |
匹配完整域名的正则表达式:
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
想系统学习的朋友可以继续阅读:正则表达式30分钟入门教程,进一步加深对正则表达式的认识。
系列文章1:最新手机号码、电话号码正则表达式
引自:http://www.jb51.net/article/96205.htm