与" OR条件"特定匹配 - 正则表达式

时间:2016-07-18 04:20:35

标签: javascript regex

我制作正则表达式以匹配datetime这些格式:

d/M/yyyy
d-M-yyyy
M/d/yyyy
M-d-yyyy
dd/MM/yyyy
dd-MM-yyyy
MM/dd/yyyy
MM-dd-yyyy
...

我试过了:



var reg = /^(\d{1,4}[/\-]\d{1,2}[/\-]\d{1,4}\s(\d{1,2}:){2}\d{1,2})$/;
alert(reg.test('18/07/2016 00:00:00'));




工作正常。但问题是:它仍然适用于这种格式:

d/M-yyyy

//or

dd-MM/yyyy

我看到问题的索引在[/\-]。我需要它重复更正/-(只有一个)。

我的问题:我该如何解决?

1 个答案:

答案 0 :(得分:1)

使用捕获组:

^\d{1,4}([/-])\d{1,2}\1\d{1,4}\s(\d{1,2}:){2}\d{1,2}$

\1将匹配与第一个捕获组匹配的文本,即([/-])