本文目錄一覽:
java密碼正則表達式(可以是純數字,也可以是純字母,也可以是數字+字母,6-16 位)
正則表達式是一種描述字元串集合的方法,它是以字元串集中各字元串的共有特徵為依據的。正則表達式可以用於探索、編輯或者操作文本和數據。它超出了Java程序設計語言的標準語法,因此有必要去學習特定的語法來構建正則表達式。正則表達式的變化是複雜的,一旦你理解了他們是如何被構造的話,你就能解析或者構建任意的正則表達式了。
密碼校驗規則如下:
1.必須包含數字、字母、特殊字元三種
2.長度至少8位
3.不能包含3位及以上相同字元的重複(hhh123@jixxx)
4.不能包含3位及以上字元組合的重複(123q123c123)
5.不能包含3位以上的正序及逆序連續字元(123#wete#321)
6.不能包含空格、製表符、換頁符等空白字元
7.支持特殊字元範圍:^$./,;:’!@#%*|?+(){}[]
按照需求進行正則表達式拆解
規則18:
str.matches(“^.*[a-zA-Z]+.*$”) str.matches(“^.*[0-9]+.*$”)
str.matches(“^.*[/^/$/.//,;:’!@#%/*/|/?/+/(/)/[/]/{/}]+.*$”)
規則2:
str.matches(“^.{8,}$”)
規則3:
!str.matches(“^.*(.)\\1{2,}+.*$”)
規則4:
!str.matches(“^.*(.{3})(.*)\\1+.*$”)
規則57:
javaImpl:
first change str to char[]
then for Math.abs(cc[0] – cc[1]) == 1 (cc[0] – cc[1]) == (cc[1] – cc[2])
如果想去掉特殊字元的連續:
first str.split(“[^\\w]+”) as str1[]
then for str1[]
then for str1[i] javaImpl:
規則6:
!str.matches(“^.*[\\s]+.*$”)
JAVA 正則法則如有驗證年份
目前仍沒有人解決1、3、5、7、8、10、12月是31天的大月問題呀
(我本是1樓)如果用正則去驗證「數值」,會很捨近求遠,不是正則的強項。需要寫很多的「向後斷言」。效率會一般甚至很低。(目前我看到的上下樓的都是有漏洞的,沒法檢驗閏月和大小月)
我所不取。
我一直用的這個:
static public boolean isValidDate(
int year, int mon, int day,
short year_min,short year_max,
StringBuffer msg)
{
if(yearyear_min || yearyear_max)
{
msg.append(“年份必須在(“+
year_min+”~”+year_max+
“)之間,輸入值(“+year+”)無效\n”);
return false;
}else{//
switch(mon){
case 1:case 3:case 5:case 7:case 8:case 10:case 12:{
if(day1 || day31){
msg.append(“日號必須在(1~31)之間,輸入值(“+day+”)無效\n”);
return false;
}
}break;
case 2:{
if(isLeapYear(year) day29){
msg.append(“閏年的閏二月日號必須在(1~29)之間,”+year+”是閏年,輸入值(“+day+”)無效\n”);
return false; }else if(day28){
msg.append(“非閏年的閏二月的日號必須在(1~28)之間,”+year+”不是閏年,輸入值(“+day+”)無效\n”);
return false;
}
}break;
case 4:case 6:case 9:case 11:{
if(day1 || day30){
msg.append(“日號必須在(1~30)之間,輸入值(“+day+”)無效\n”);
return false;
}
}break;
default:{
msg.append(“月份必須在(1~12)之間,輸入值(“+mon+”)無效\n”);
return false;
}
}
}
return true;
}
static public boolean isLeapYear(int year){
return (year%4==0 year%100!=0)|| year%400==0;
}
包好。
java正則表達式校驗 ip
你直接用matchs判斷就可以了,matcher是只要內部有能匹配上的就算滿足,不是判斷整體。
String rexp = “([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}”;
String addr = “11111.1.1.1”;
System.out.println(“1.1.1.1”.matches(rexp));
System.out.println(“11.1.1.1”.matches(rexp));
System.out.println(“111.1.1.1”.matches(rexp));
System.out.println(“11111.1.1.1”.matches(rexp));
true
true
true
false
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/192621.html