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

时间:2011-03-01 00:34:51

标签: javascript date time

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

XX:XX

值必须两个整数两个数字)由冒号分隔,第一个必须是0-23,第二个0- 59(现在是时候了)。

第二项测试是关于日期

DD.MM.YYYY

其中DD是日,MM月和YYYY年的2位数表示 - 以点分隔。我还可以查看日期有效吗?因此,用户无法输入45.02.9999。

4 个答案:

答案 0 :(得分:1)

在这篇文章中,您拥有所需的所有正则表达式。

http://regexlib.com/DisplayPatterns.aspx?cattabindex=4&categoryId=5

这是时间:

^(([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$

您可以在http://www.rubular.com/

中试用此正则表达式

答案 1 :(得分:1)

这可以通过相当简单的RegEx来完成。

第一个以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);

允许截止日期为31.12.2019。知道每个月有多少天(即31.02.1999不是有效日期)并不够聪明,但对于大多数用途来说应该是足够好的初始验证。

答案 2 :(得分:0)

使用两遍方法。首先使用正则表达式检查字符串的一般结构,以确保它在正确的位置具有正确的分隔符和数字。在第二遍中,您可以使用indexOf()查找分隔符,使用substring()来提取每个位置的数字。然后使用n = str * 1转换为数字,并在第一种情况下检查范围n >=0 && n <=23

两遍方法意味着您可以使用更简单的正则表达式和更易读的代码。

答案 3 :(得分:0)

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