我发现测试格式和日期字段的内容的一种非常有用的正则表达式的正则表达式示例站点正则表达式进行测试的日期格式
,但我得到验证,当我把在日期比2000年长而且由于这是一个输入出生日期的字段,你可以看到它为什么会是一个问题。我相信这是一个简单的解决方法,但正则表达式会吓倒我。
$('#txtDOB').blur(function() {
//$('span.error-keyup-5').remove();
var inputVal = $(this).val();
var dateReg = /^[0,1]?\d{1}\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([2-9]{1}\d{3}))$/;
if(!dateReg.test(inputVal)) {
alert('invalid date format: ' + inputVal);
}
我没有结婚这个解决方案,所以如果你可以建议更好的方法,请评论。
正则表达式是不是首选工具日期验证(见[这里](http://stackoverflow.com/questions/4290433/regular-expression-for-aspregularexpressionvalidator-with-format-mmddyy-leap-y/4291747#4291747)为什么不)。他们可以检查“可能是日期的东西”,但如果你需要考虑日期范围,月份长度,闰年等,你最好用[日期分析器](http://代码。 google.com/p/datejs/wiki/APIDocumentation#parseExact)。 –
这不是一个特别好的正则表达式,但我可以找到你(特别是众多的'{1}'是没有意义的) –
为什么你不会创建一个JavaScript日期对象并使用它的本地函数? –