正则表达式的日期格式为hour.minute dayName日/月

时间:2015-10-01 18:02:21

标签: javascript regex validation date input

我正在尝试使用以下代码验证str。我的最终目标是允许这种输入方式:

  

18.30 Saturday_lastMatch 3/10

但是,我的代码甚至无法用于基本用法(98.5%str将采用此格式):

  

19.30(星期五)15/5

var regex= /[0-9]{2}[\.:][0-9]{2} [A-Z][a-z]{4,7} [0-9]\/[0-9]{2}/;
if(!str.match(regex)) {
  //"Bad format, match creation failed!");
}

我错过了什么?

2 个答案:

答案 0 :(得分:3)

需要扩展检查日/月的正则表达式的最后部分。它目前仅匹配#/##,但也应允许##/#。最简单的解决方法是允许任一侧的一个或两个数字(例如12/31)

var regex= /[0-9]{2}[\.:][0-9]{2} [A-Z][a-z]{4,7} [0-9]{1,2}\/[0-9]{1,2}/;

答案 1 :(得分:3)

你的正则表达式有很多问题。

  1. 日期&在开头和结尾的时间匹配部分不允许1 2位数字。

  2. 您可能需要考虑分别在^$的开头和结尾处锚定正则表达式。

  3. 不需要转义字符类中的字面点。

  4. 试试这个:

    var regex= /^[0-9]{1,2}[.:][0-9]{1,2} [A-Z][a-z]{5,8} [0-9]{1,2}\/[0-9]{1,2}$/;
    
相关问题