乙個匹配8 16位數字和字母密碼的正規表示式

2021-07-10 10:04:01 字數 2711 閱讀 4395



乙個使用者註冊功能的密碼有如下要求:由數字和字母組成,並且要同時含有數字和字母,且長度要在8-16位之間。

如何分析需求?拆分!這就是軟體設計的一般思路了。於是乎,拆分需求如下:

1,不能全部是數字

2,不能全部是字母

3,必須是數字或字母

只要能同時滿足上面3個要求就可以了,寫出來如下:

^(?

![0-9]+$

)(?!

[a-za-z]+

$)[0-9a-za-z]$

分開來注釋一下:

^ 匹配一行的開頭位置

(?![0-9]+$) **該位置後面不全是數字

(?![a-za-z]+$) **該位置後面不全是字母

[0-9a-za-z] 由8-16位數字或這字母組成

$ 匹配行結尾位置

注:(?!***x) 是正規表示式的負向零寬斷言一種形式,標識預該位置後不是***x字元。

測試用例如下:

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

public

class

test$";

string

value

="aaa"

;// 長度不夠

system

.out

.println

(value

.matches

(regex))

;

value

="1111aaaa1111aaaaa"

;// 太長

system

.out

.println

(value

.matches

(regex))

;

value

="111111111"

;// 純數字

system

.out

.println

(value

.matches

(regex))

;

value

="aaaaaaaaa"

;// 純字母

system

.out

.println

(value

.matches

(regex))

;

value

="####@@@@#"

;// 特殊字元

system

.out

.println

(value

.matches

(regex))

;

value

="1111aaaa"

;// 數字字母組合

system

.out

.println

(value

.matches

(regex))

;

value

="aaaa1111"

;// 數字字母組合

system

.out

.println

(value

.matches

(regex))

;

value

="aa1111aa"

;// 數字字母組合

system

.out

.println

(value

.matches

(regex))

;

value

="11aaaa11"

;// 數字字母組合

system

.out

.println

(value

.matches

(regex))

;

value

="aa11aa11"

;// 數字字母組合

system

.out

.println

(value

.matches

(regex))

;

} }

乙個匹配數字和字母密碼的正則表達

乙個使用者註冊功能的密碼有如下要求 由數字和字母組成,並且要同時含有數字和字母,且長度要在8 16位之間。如何分析需求?拆分!這就是軟體設計的一般思路了。於是乎,拆分需求如下 1,不能全部是數字 2,不能全部是字母 3,必須是數字或字母 只要能同時滿足上面3個要求就可以了,寫出來如下 0 9 a z...

乙個匹配數字和字母密碼的正規表示式

乙個使用者註冊功能的密碼有如下要求 由數字和字母組成,並且要同時含有數字和字母,且長度要在8 16位之間。如何分析需求?拆分!這就是軟體設計的一般思路了。於是乎,拆分需求如下 1,不能全部是數字 2,不能全部是字母 3,必須是數字或字母 只要能同時滿足上面3個要求就可以了,寫出來如下 0 9 a z...

乙個匹配數字和字母密碼的正規表示式

乙個使用者註冊功能的密碼有如下要求 由數字和字母組成,並且要同時含有數字和字母,且長度要在8 16位之間。如何分析需求?拆分!這就是軟體設計的一般思路了。於是乎,拆分需求如下 1,不能全部是數字 2,不能全部是字母 3,必須是數字或字母 只要能同時滿足上面3個要求就可以了,寫出來如下 0 9 a z...