Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查特定格式(时间和日期)_Javascript_Date_Time - Fatal编程技术网

Javascript 检查特定格式(时间和日期)

Javascript 检查特定格式(时间和日期),javascript,date,time,Javascript,Date,Time,我需要在javascript中测试以下格式(因此我有一个字符串,我必须检查它是否有效) 值必须是由冒号分隔的两个整数,第一个必须是0-23,第二个必须是0-59(时间差不多了) 第二次测试是关于日期的 DD.MM.YYYY 其中,DD是日、月和年的两位数表示形式,用点分隔。我还可以检查日期是否有效吗?例如,用户无法键入45.02.9999。在这篇文章中,您已经获得了所需的所有Regexp 这是为了时间: ^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:(

我需要在javascript中测试以下格式(因此我有一个字符串,我必须检查它是否有效)

值必须是由冒号分隔的两个整数,第一个必须是0-23,第二个必须是0-59(时间差不多了)

第二次测试是关于日期的

DD.MM.YYYY

其中,DD是日、月和年的两位数表示形式,用点分隔。我还可以检查日期是否有效吗?例如,用户无法键入45.02.9999。

在这篇文章中,您已经获得了所需的所有Regexp

这是为了时间:

^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?$
这是日期:

^(0[1-9]|[12][0-9]|3[01]).([1][0-12]|[0][1-9]).(19|20)\d\d$

您可以在

中尝试此regexp,使用两次通过的方法。首先使用正则表达式检查字符串的一般结构,以确保它在正确的位置有正确的分隔符和数字。在第二遍中,您可以使用
indexOf()
查找分隔符,并使用
substring()
提取每个位置的数字。然后使用
n=str*1
转换成一个数字,并检查范围
n>=0&&n,这可以用相当简单的正则表达式来完成

第一个以24小时格式测试时间的是:

/(0[1-9]|1[1-9]|2[1-3]):[0-5][1-9]/.test(yourTime);
/([0-2][0-9]|3[0-1])\.(0[1-9]|1[0-2])\.(19[0-9][0-9]|20[0-1][0-9])/.test(yourDate);
第二个测试日期为:

/(0[1-9]|1[1-9]|2[1-3]):[0-5][1-9]/.test(yourTime);
/([0-2][0-9]|3[0-1])\.(0[1-9]|1[0-2])\.(19[0-9][0-9]|20[0-1][0-9])/.test(yourDate);

这将允许截止日期为2019年12月31日。知道每个月有多少天(即1999年2月31日不是有效日期)还不够聪明,但对于大多数目的来说,初始验证应该足够好。

使用正则表达式将字符串拆分为其组件,然后用结果填充日期对象以检查有效性。

正则表达式无法检查有效性。正则表达式无法捕获无效日期,例如
29.02.2011
@Stephen P您听说过与Gregorian兼容的正则表达式吗?:P