我制作正则表达式以匹配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
我看到问题的索引在[/\-]
。我需要它重复更正/
或-
(只有一个)。
我的问题:我该如何解决?
答案 0 :(得分:1)
使用捕获组:
^\d{1,4}([/-])\d{1,2}\1\d{1,4}\s(\d{1,2}:){2}\d{1,2}$
\1
将匹配与第一个捕获组匹配的文本,即([/-])
。