js 日期匹配正則式

2021-09-09 02:59:01 字數 1971 閱讀 3021

//檢驗字串中是否包含1900-2050的日期子字串

var datereg_null_ymd=new regexp("(([2-9][0-9]|1[6-9])?[0-9]([-\/\.])?((1[0-2]|0?[1-9])([-\/\.])?(2[0-8]|1[0-9]|0?[1-9])|(1[0-2]|0?[13-9])([-\/\.])?(29|30)|(1[02]|0?[13578])([-\/\.])?(31))|((1[6-9]|[2-9][0-9])?(0[48]|[2468][048]|[13579][26])|(16|[2468][048]|[3579][26])00)([-\/\.])?0?2([-\/\.])?(29))");

var datereg_nnull=new regexp("(([2-9][0-9]|1[6-9])[0-9]([-\/\.])?((1[0-2]|0?[1-9])([-\/\.])?(2[0-8]|1[0-9]|0?[1-9])|(1[0-2]|0?[13-9])([-\/\.])?(29|30)|(1[02]|0?[13578])([-\/\.])?(31))|((1[6-9]|[2-9][0-9])(0[48]|[2468][048]|[13579][26])|(16|[2468][048]|[3579][26])00)([-\/\.])?0?2([-\/\.])?(29))");

var datereg_sep=new regexp("(([2-9][0-9]|1[6-9])?[0-9]([-\/\.])((1[0-2]|0?[1-9])([-\/\.])(2[0-8]|1[0-9]|0?[1-9])|(1[0-2]|0?[13-9])([-\/\.])(29|30)|(1[02]|0?[13578])([-\/\.])(31))|((1[6-9]|[2-9][0-9])?(0[48]|[2468][048]|[13579][26])|(16|[2468][048]|[3579][26])00)([-\/\.])0?2([-\/\.])(29))");

var datestr="sfdsffdsf987-12-28"; //"sfdsffdsf11987-12-28"; //"sfdsffdsf19987-12-28";

var r1=datereg_null_ymd.exec(datestr); //什麼都不確定時只能用這個,但效果不一定,比如1198會認為是11-9-8

var r2=datereg_nnull.exec(datestr);     //不確定有分隔符但年四位時用這個

var r3=datereg_sep.exec(datestr);      //確定有分隔符時最好使用這個

if(r1!=null)

if(r2!=null)

if(r3!=null)

是為了查詢字串中可能的日期,所以不是很嚴格,也可以在一定程度上用來檢驗日期字串:

var time1="1987-12-28";

var time2="1987/12/28";

var time3="87/12/28";

var time4="87.12.28";

var time5="87.1.09";

var time6="987.1.1";

var time7="255.126.3";

console.log(datereg_sep.test(time1));

console.log(datereg_sep.test(time2));

console.log(datereg_sep.test(time3));

console.log(datereg_sep.test(time4));

console.log(datereg_sep.test(time5));

console.log(datereg_sep.test(time6));

console.log(datereg_sep.test(time7)); //這個太不像話的false

JS正則匹配驗證表過式

匹配中文字元的正規表示式 u4e00 u9fa5 匹配雙位元組字元 包括漢字在內 x00 xff 匹配空行的正規表示式 n s r 匹配 html 標記的正規表示式 匹配首尾空格的正規表示式 s s 像vbscript 那樣的trim 函式 匹配email 位址的正規表示式 w w w w w w ...

js 正則匹配

isnumber 是否為數字 regexps.isnumber d d isint 是否為整形 regexps.isint d istime 是否為時間格式 regexps.istime d d d s d d d isdate 是否為日期格式 regexps.isdate d d d isemai...

js正則匹配

var childnodename childnodename val 自定義name只能輸入數字 字母或漢字 if childnodename var regex1 a za z a za z0 9 字母數字,字母開頭 var regex3 a za z0 9 字母數字下劃線 var regex4...