如何检查用户是否在javascript中传递了有效日期?

MrM*_*MrM 5 .net html javascript asp.net

我有一个javascript函数,检查日期范围.有没有办法检查用户是否在文本框中输入了有效日期,无论格式如何?

function checkEnteredDate() {
            var inputDate = document.getElementById('txtDate');
            //if statement to check for valid date
            var formatDate = new Date(inputDate.value);
            if (formatDate > TodayDate) {
                alert("You cannot select a date later than today.");
                inputDate.value = TodayDate.format("MM/dd/yyyy");
            }
}
Run Code Online (Sandbox Code Playgroud)

Jos*_*osh 10

看看这个库date.js http://code.google.com/p/jqueryjs/source/browse/trunk/plugins/methods/date.js

它有一个名为fromString的有用函数,它将尝试将一个字符串(基于Date.format)转换为一个有效的日期对象.

如果函数没有创建有效的日期对象,则返回false - 如果全部返回false,则可以在放弃之前尝试不同的格式.

以下是您可以测试的一些示例格式:

Date.format = 'dd mmm yyyy';
alert(Date.fromString("26 Jun 2009"));

Date.format = 'mmm dd yyyy';
alert(Date.fromString("Jun 26 2009"));

Date.format = 'dd/mm/yy';
alert(Date.fromString("26/06/09"));

Date.format = 'mm/dd/yy';
alert(Date.fromString("06/26/09"));

Date.format = 'yyyy-mm-dd';
alert(Date.fromString("2009-06-26"));
Run Code Online (Sandbox Code Playgroud)

玩笑