1

Java脚本函数

<script language="JavaScript">

function checkdate(date1){
var validformat=/^\d{2}\/\d{2}\/\d{4} \d{2}\:\d{2}\:\d{2}$/ 
if(!validformat.test(date1.value)){
alert("Invalid Date");
 document.form.date1.value="";
}

}

以上运行良好!但我想相应地限制月份日期

my format = mm/dd/YYYY hh:mm:ss

月份不应大于 12 且小于 1 且相同,日期不应大于 31 且小于 1;

还有一件事!

02/02/2013 00:00:00是有效日期,但2/2/2013 00:00:00显示为无效日期。

如何控制这两种情况?

4

3 回答 3

1

您可以尝试以下方法:

var comp = value.split('/');
var d = parseInt(comp[0], 10);
var m = parseInt(comp[1], 10);
var y = parseInt(comp[2], 10);
var date = new Date(y, m - 1, d);
var validDateFormat = false;
if (date.getFullYear() == y && date.getMonth() + 1 == m && date.getDate() == d) {
    validDateFormat = true;
}

如果 validDateFormat 为 true,则日期有效。

于 2013-04-12T05:28:44.617 回答
1

m/d/YYYY hh:mm:ssmm/dd/YYYY hh:mm:ss的日期时间正则表达式

/^(0?[1-9]|1[012])\/(0?[1-9]|[12]\d|3[01])\/[12]\d{3} ([01]\d|2[0-3])\:[0-5]\d\:[0-5]\d$/

解释演示:http ://regex101.com/r/bS0gB6

于 2013-04-12T05:29:26.137 回答
0

您可以查看网站,该网站允许您为数字范围创建正则表达式。

话虽如此,您应该使用您正在使用的语言(Javascript)提供的数字运算符而不是正则表达式。

或者,您可以使用在 JQuery 中创建的 DateTime Picker,如此处所示。

于 2013-04-12T05:19:38.413 回答