1. java驗證日期"yyyyMMdd"正則表達式,
正則表達式如下
/^(\d{4})-(\d{2})-(\d{2})$/
2. 用java 語言,怎麼用正則匹配一段漢字的年月日!給個詳細的過程!
[0一二三四五六七八九十]+年[一二三四五六七八九十]+月[一二三四五六七八九十]+日
3. Java裡面效驗日期的正則表達式
publicstaticvoidmain(String[]args)
{
StringcheckValue="20000431112230";
Stringyear=checkValue.substring(0,4);//獲取年份
Stringmonth=checkValue.substring(4,6);//獲取月份
BooleanisLeap=leapYear(Integer.parseInt(year));//判斷閏年
System.out.println(isLeap);
StringBuffereL=newStringBuffer();
StringlongMonth="01030507081012";//31天的月份
Stringfix="([2][0-3]|[0-1][0-9]|[1-9])[0-5][0-9]([0-5][0-9]|[6][0])";
if(isLeap&&month.equals("02")){//針對2月份的情況【閏年】
eL.append("\d{4}([1][0-2]|[0][0-9])([2][0-1]|[1-2][0-9]|[0][1-9]|[1-9])"+fix);
}elseif(!isLeap&&month.equals("02")){//針對2月份的情況【非閏年】
eL.append("\d{4}([1][0-2]|[0][0-9])([2][0-1]|[1-2][0-8]|[0][1-9]|[1-9])"+fix);
}elseif(longMonth.contains(month)){//31天月份
eL.append("\d{4}([1][0-2]|[0][0-9])([3][0-1]|[1-2][0-9]|[0][1-9]|[1-9])"+fix);
}else{//30天月份
eL.append("\d{4}([1][0-2]|[0][0-9])([3][0]|[1-2][0-9]|[0][1-9]|[1-9])"+fix);
}
Patternp=Pattern.compile(eL.toString());
Matcherm=p.matcher(checkValue);
booleanflag=m.matches();
if(flag)
{
System.out.println("格式正確");
}
else
{
System.out.println("格式錯誤");
}
}
publicstaticbooleanleapYear(intyear){
BooleanisLeap=false;
if(((year%100==0)&&(year%400==0))
||((year%100!=0)&&(year%4==0)))
isLeap=true;
returnisLeap;
}
4. 用JAVA正則表達式怎麼匹配年月日
// //2009-01-01 12:30:30 //年-月-日
String reg = "^\\d{4}-0[1-9]|1[1-2]-0[1-9]|[1-2]\\d|3[0-1] [0-2][0-4]:[0-6]\\d:[0-6]\\d$";
//01/01/2009 12:30:30 月/日/年
String reg2 = "^[0[1-9]|1[1-2]/0[1-9]|[1-2]\\d|3[0-1]/\\d{4} [0-2][0-4]:[0-6]\\d:[0-6]\\d$";
5. 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(year<year_min || year>year_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(day<1 || day>31){
msg.append("日號必須在(1~31)之間,輸入值("+day+")無效\n");
return false;
}
}break;
case 2:{
if(isLeapYear(year) && day>29){
msg.append("閏年的閏二月日號必須在(1~29)之間,"+year+"是閏年,輸入值("+day+")無效\n");
return false; }else if(day>28){
msg.append("非閏年的閏二月的日號必須在(1~28)之間,"+year+"不是閏年,輸入值("+day+")無效\n");
return false;
}
}break;
case 4:case 6:case 9:case 11:{
if(day<1 || day>30){
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;
}
包好。
6. java正則表達式是什麼
java正則表達式是計算機科學的一個概念。正則表達式使用單個字元串來描述、匹配一系列符合某個句法規則的字元串。
在編寫處理字元串的程序或網頁時,經常會有查找符合某些復雜規則的字元串的需要。正則表達式就是用於描述這些規則的工具。換句話說,正則表達式就是記錄文本規則的代碼。
很可能你使用過Windows/Dos下用於文件查找的通配符(wildcard),也就是*和?。如果你想查找某個目錄下的所有的Word文檔的話,你會搜索*.doc。在這里,*會被解釋成任意的字元串。
和通配符類似,正則表達式也是用來進行文本匹配的工具,只不過比起通配符,它能更精確地描述你的需求——當然,代價就是更復雜——比如你可以編寫一個正則表達式,用來查找所有以0開頭,後面跟著2-3個數字,然後是一個連字型大小「-」,最後是7或8位數字的字元串(像010-12345678或0376-7654321)。
正則表達式的基本操作:
正則表達式定義:符合一定規則的表達式。
作用:用於專門操作字元串。
特點:用於一些特定的符號來表示一些代碼操作。這樣就簡化書寫。所以學習正則表達式,就是在學習一些特殊符號的使用。
好處:可以簡化對字元串的復雜操作。
弊端:符號定義越多,正則越長,閱讀性越差。
7. java實現輸入年份判斷在哪一天(正則表達式待
要看你用的年份在什麼場合了,簡單驗證的話就是19/20開頭的四位數字:
年份:
/^(19|20)\d{2}$/
月份:
/^([1-9]|1[0-2])$/
8. java 正則表達式驗證日期格式 yyyy-MM-dd,如何寫
我前不久剛好整了這段代碼,你仔細看一下:
閏年:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
平年:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
上面代碼驗證的格式是yyyyMMdd,看懂了這個,你那個也就清楚了
9. java如何判斷是否為有效的年月日
年 大於 1900
月 大於0,小於13
日 if(月=1,3,5,7,8,10,12){日大於1小於等於31};
else if{月=4,6,9,11}{日大於1小於等於30};
else if(年是潤年){日大於1小於等於29};
else {日大於1小於等於28}
閏年的判斷公式如下:能被4整除且不能被100整除(year%4==0&&year&&100!=0)