我试图找到一种测试字符串是否符合当前标准的最佳方法。基本上,我有一个这样的约会:
1/17/2013 12:00 AM
月和日字段可以是一位或两位数,而年份总是四位。小时可以是一位数或两位数。分钟字段始终为两位数例如,这也适用:
10/1/2013 1:00 AM
现在,我有这个正则表达式,但它似乎不起作用:
/^(0[1-9]|1[0-2])\/(0[1-9]|[1-2][0-9]|3[0-1])\/(20[1-9][2-9]) (0[1-9]|1[0-2]):([0-5][0-9]) (am|pm)$/
我这样使用它:
$('input[name=targetMe]').each( function() {
alert('start')
if(/^(0[1-9]|1[0-2])\/(0[1-9]|[1-2][0-9]|3[0-1])\/(20[1-9][2-9]) (0[1-9]|1[0-2]):([0-5][0-9]) (AM|PM)$/.test($(this).val())) {
alert('passes')
} else {
alert('dont')
}
});
我当前的正则表达式是否有问题,或者我应该以其他方式使用它,还是有比这更好的解决方案?