返回最新密码验证正......登陆

最新密码验证正则表达式

巴扎黑2016-12-28 09:51:10458

这篇文章主要为大家分享了最新密码验证正则表达式,密码形式可以根据开发需求进行设定,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

正则表达式验证密码功能在项目中经常被使用到,但是很多朋友还是不大会使用密码正则表达式进行验证,本文小编为大家整理了php密码验证正则表达式、python密码强度正则,当然还有大家常用到的js正则表达式,希望大家喜欢。

刚开始复习一下,什么是正则表达式?
在编写处理字符串的程序或网页时,经常有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

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分钟入门教程,进一步加深对正则表达式的认识。

更多关于最新密码验证正则表达式请关注PHP中文网(www.php.cn)其它文章!

最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送