var reDate=/(?:19|20\d{2})\-(?:0[1-9]|1[0-2])\-(?:0[1-9]|[12][0-9]|3[01])/; if ( !reDate.test("2008-08-09" ))//(?:19|20\d{2})其实这里它写错了,导致凡是输入1999这样小于2000年的都会错误,只能验证19……2000以上的没问题 alert("日期格式错误!"); else alert("正确");
var reDate=/(?:19\d{2}|20\d{2})\-(?:0?[1-9]|1[0-2])\-(?:0?[1-9]|[12][0-9]|3[01])/; if ( !reDate.test("1998-8-09" ))//1999-8-8,1999-08-08,2000-10-10,2000-09-9都可以 alert("日期格式错误!"); else alert("正确");
谢谢 ,如果我不希望这种日期格式通过 1998-8-09,只希望 1998-8-9通过该如何写呢?我修改一下了,把?:0 改为?: var reDate=/(?:19\d{2}|20\d{2})\-(?:[1-9]|1[0-2])\-(?:[1-9]|[12][0-9]|3[01])/; if ( !reDate.test("" ))//1999-8-8,1999-08-08,2000-10-10,2000-09-9都可以 alert("日期格式错误!"); else alert("正确"); 但是 :1998-8-9 1998-8-49 都给通过了,不知错在那里
var reDate=/(?:19\d{2}|20\d{2})\-(?:0?[1-9]|1[0-2])\-(?:0?[1-9]|[12][0-9]|3[01])/;
if ( !reDate.test("1998-8-09" ))//1999-8-8,1999-08-08,2000-10-10,2000-09-9都可以
alert("日期格式错误!");
else
alert("正确");
var reDate=/(?:19\d{2}|20\d{2})\-(?:[1-9]|1[0-2])\-(?:[1-9]|[12][0-9]|3[01])/;
if ( !reDate.test("" ))//1999-8-8,1999-08-08,2000-10-10,2000-09-9都可以
alert("日期格式错误!");
else
alert("正确");
但是 :1998-8-9 1998-8-49 都给通过了,不知错在那里