JS實現年月日時分秒的校驗
阿新 • • 發佈:2019-01-04
function isTime(str){ //yyyyMMddHHmmss //0001 01 01 00 00 00 //00010101000000 var validate = /^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229))([0-1]?[0-9]|2[0-3])([0-5][0-9])([0-5][0-9])$/; var reg = new RegExp(validate); if(str == null || str == undefined || str == '') return false; if(!reg.test(str)) return false; return true; } function yyyy(str){ if(str == null || str == undefined || str == '') return false; if(str.length != 4) return false; var target = str + "0101000000" return isTime(target); } function yyyyMM(str){ if(str == null || str == undefined || str == '') return false; if(str.length != 6 ) return false; var target = str + "01000000" return isTime(target); } function yyyyMMdd(str){ if(str == null || str == undefined || str == '') return false; if(str.length != 8) return false; var target = str + "000000" return isTime(target); } function yyyyMMddHHmmss(str){ //yyyyMMdd HH:mm:ss if(str == null || str == undefined || str == '') return false; if(str.length !=14 ) return false; return isTime(str); } function test(){ if(timeFormat == 'yyyy'){ //yyyy if(!yyyy(defaultvalue)){ validateMsg += '引數值格式錯誤<br/>'; flag = false; } }else if(timeFormat == 'yyyyMM'){ //yyyyMM if(!yyyyMM(defaultvalue)){ validateMsg += '引數值格式錯誤<br/>'; flag = false; } }else if(timeFormat == 'yyyyMMdd'){ //yyyyMMdd if(!yyyyMMdd(defaultvalue)){ validateMsg += '引數值格式錯誤<br/>'; flag = false; } }else if(timeFormat == 'yyyyMMdd HH:mm:ss'){ //yyyyMMdd HH:mm:ss try { var day = defaultvalue.split(" ")[0]; var tmp = defaultvalue.split(" ")[1].split(":"); } catch(err){ $.alert('溫馨提示','引數值格式錯誤'); } if(tmp.length !=3){ validateMsg += '引數值格式錯誤<br/>'; flag = false; }else{ for (var i=0; i<tmp.length; i++){ day += tmp[i]; } if(!yyyyMMddHHmmss(day)){ validateMsg += '引數值格式錯誤<br/>'; flag = false; } } }else if(timeFormat == 'yyyy-MM'){ //yyyy-MM try { var tmp = defaultvalue.split('-')[0] + defaultvalue.split('-')[1]; } catch(err){ $.alert('溫馨提示','引數值格式錯誤'); } if(!yyyyMM(tmp)){ validateMsg += '引數值格式錯誤<br/>'; flag = false; } }else if(timeFormat == 'yyyy-MM-dd'){ //yyyy-MM-dd try { var tmp = defaultvalue.split('-')[0] + defaultvalue.split('-')[1] + defaultvalue.split('-')[2]; } catch(err){ $.alert('溫馨提示','引數值格式錯誤'); } if(!yyyyMMdd(tmp)){ validateMsg += '引數值格式錯誤<br/>'; flag = false; } }else if(timeFormat == 'yyyy-MM-dd HH:mm:ss'){ //yyyy-MM-dd HH:mm:ss try { var days = defaultvalue.split(' ')[0].split('-'); var tmp = defaultvalue.split(' ')[1].split(':'); } catch(err){ $.alert('溫馨提示','引數值格式錯誤'); } var day = ''; if(days.length !=3 || tmp.length !=3){ validateMsg += '引數值格式錯誤<br/>'; flag = false; }else{ for (var i=0; i<days.length; i++){ day += days[i]; } for (var i=0; i<tmp.length; i++){ day += tmp[i]; } if(!yyyyMMddHHmmss(day)){ validateMsg += '引數值格式錯誤<br/>'; flag = false; } } } } }