2013-07-16 45 views
0

我有以下一段javascript来比较DD-MM-YYYY HH-MM-SS日期格式,但由于某些原因它不起作用。任何人都可以看到它有什么问题吗? (记住,是日期&时间之间的空白正在比较一个日期格式类似的数据regExp代码:DD-MM-YYYY HH-MM-SS

new RegExp (/^(0?[1-9]|[12][0-9]|3[01])[\/\-\.](0?[1-9]|1[012])[\/\-\.](\d{4})\s([0-1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9])$/) 

我匹配这个正则表达式的实际数据看起来像以下任何一项: 2013年1月1日0:00:00 1/1/2013 0:00:00 01-01-2013 00:00:00 01/01/2013 00:00:00 31-12-2013 23:59:59 这些是最大范围。从0:00:00到9:59:59时间被记录下来,而在10:00:00它是6位数字,最好它也能处理闰年。

+1

你可以只用文字形式对于初学者 - 'VAR正则表达式=/your_regex /;' –

+0

以何种方式它不工作?它似乎为我工作。 – iamnotmaynard

+0

比较日期格式是什么意思? – gawi

回答

1

看起来像t的分隔符ime是:而不是-。尝试:

new RegExp (/^(0?[1-9]|[12][0-9]|3[01])[\/\-\.](0?[1-9]|1[012])[\/\-\.](\d{4})\s([0-1][0-9]|[2][0-3])\-([0-5][0-9])\-([0-5][0-9])$/) 
0

你应该保持小的东西,测试一小块正则表达式。

你想允许一位数的一个小时,但你忘了把它放在你的正则表达式中。它应该看起来像:

([0-9]|[0-1][0-9]|[2][0-3]) 

现在,它的工作原理:

regex = new RegExp (/^(0?[1-9]|[12][0-9]|3[01])[\/\-\.](0?[1-9]|1[012])[\/\-\.](\d{4})\s([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9])$/) 
match = '1-1-2013 0:00:00'.match(regex) 
console.log(match)