我正在使用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
,使用-
或/
作为分隔符基于This script