我發現測試格式和日期字段的內容的一種非常有用的正則表達式的正則表達式示例站點正則表達式進行測試的日期格式
,但我得到驗證,當我把在日期比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日期對象並使用它的本地函數? –