我正在使用JavaScript,需要弄清楚如何使用正则表达式确定有效日期。
比赛将是:
dd-mm-yyyy dd-mm-yy
另外,不应接受前导零,例如:
9-8-2010 10-6-99
如何编写正则表达式来做到这一点?
我想出了这个:
function isValidDate(inputDate){ var myRegex = /^(\d{1,2})([\-\/])(\d{1,2})\2(\d{4}|\d{2})$/; var match = myRegex.exec(inputDate); if (match != null) { var auxDay = match[1]; var auxMonth = match[3] - 1; var auxYear = match[4]; auxYear = auxYear.length < 3 ? (auxYear < 70 ? '20' + auxYear : '19' + auxYear) : auxYear; var testingDate = new Date(auxYear,auxMonth,auxDay); return ((auxDay == testingDate.getDate()) && (auxMonth == testingDate.getMonth()) && (auxYear == testingDate.getFullYear())); } else return false; }
适用于dd-mm-yyyy,dd-mm-yy,d-m-yyyy和d-m-yy,使用-或/作为分隔符
dd-mm-yyyy
dd-mm-yy
d-m-yyyy
d-m-yy
-
/