toDate:function(format){ var str=this; if(str.trim().isEmpty())return null; var f=format || 'yyyy-MM-dd'; var y4='([0-9]{4})';var y2='([0-9]{2})';var yi=-1; var M2='(0[1-9]|1[0-2])';var M1='([1-9]|1[0-2])';var Mi=-1; var d2 = '(0[1-9]|[1-2][0-9]|30|31)';var d1 = '([1-9]|[1-2][0-9]|30|31)';var di = -1; var H2 = '([0-1][0-9]|20|21|22|23)';var H1 = '([0-9]|1[0-9]|20|21|22|23)';var Hi = -1; var m2 = '([0-5][0-9])';var m1 = '([0-9]|[1-5][0-9])';var mi = -1; var s2 = '([0-5][0-9])';var s1 = '([0-9]|[1-5][0-9])';var si = -1; var regexp; if(function(){ var reg=f; reg=reg.replace(/yyyy/,y4).replace(/yy/,y2).replace(/MM/,M2).replace(/M/, M1).replace(/dd/, d2).replace(/d/, d1).replace(/HH/, H2).replace(/H/, H1).replace(/mm/, m2).replace(/m/, m1).replace(/ss/, s2).replace(/s/, s1); regexp=new RegExp("^"+reg+"$"); return regexp.test(str); }()){ var index=function(formatString){ var ia = new Array();var i = 0; yi = formatString.search(/yyyy/); if ( yi < 0 ) yi = formatString.search(/yy/); if (yi >= 0) {ia[i] = yi;i++;} Mi = formatString.search(/MM/); if ( Mi < 0 ) Mi = formatString.search(/M/); if (Mi >= 0) {ia[i] = Mi;i++;} di = formatString.search(/dd/); if ( di < 0 ) di = formatString.search(/d/); if (di >= 0) {ia[i] = di;i++;} Hi = formatString.search(/HH/); if ( Hi < 0 ) Hi = formatString.search(/H/); if (Hi >= 0) {ia[i] = Hi;i++;} mi = formatString.search(/mm/); if ( mi < 0 ) mi = formatString.search(/m/); if (mi >= 0) {ia[i] = mi;i++;} si = formatString.search(/ss/); if ( si < 0 ) si = formatString.search(/s/); if (si >= 0) {ia[i] = si;i++;} var ia2 = new Array(yi, Mi, di, Hi, mi, si); for(i=0; i<ia.length-1; i++){ for(j=0;j<ia.length-1-i;j++){ if(ia[j]>ia[j+1]) {temp=ia[j];ia[j]=ia[j+1];ia[j+1]=temp;} } } for (i=0; i<ia.length ; i++){ for (j=0; j<ia2.length; j++){ if(ia[i]==ia2[j]) {ia2[j] = i;} } } return ia2; }(f); var now = new Date(); var vals = regexp.exec(str); var year = index[0]>=0?vals[index[0] + 1]:now.getFullYear(); var month = index[1]>=0?(vals[index[1] + 1]-1):now.getMonth(); var day = index[2]>=0?vals[index[2] + 1]:now.getDate(); var hour = index[3]>=0?vals[index[3] + 1]:""; var minute = index[4]>=0?vals[index[4] + 1]:""; var second = index[5]>=0?vals[index[5] + 1]:""; var validate; if (hour == ""){ validate = new Date(year, month, day);} else validate = new Date(year, month, day, hour, minute, second); if(validate.getDate()==day) return validate; }else{ return null; } },