我需要在 javascript 中测试以下格式(所以我有一个字符串,我必须检查它是否有效)
XX:XX
值必须两个整数(两个数字)由冒号分隔,第一个必须是0-23,第二个0- 59(现在是时候了)。
第二项测试是关于日期
DD.MM.YYYY
其中DD是日,MM月和YYYY年的2位数表示 - 以点分隔。我还可以查看日期有效吗?因此,用户无法输入45.02.9999。
答案 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$
中试用此正则表达式
答案 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)
使用正则表达式将字符串拆分为其组件,然后使用结果填充日期对象以检查有效性。