1<input name="date1" type="text" value="2002-02-02"/>
文本框里必须输入以上格式的日期才能提交,否则出错?请问怎么用js检查???
谢谢.
---------------------------------------------------------------
1<script language="javascript">
2function strDateTime(str)
3{
4var reg = /^(\d{1,4})(- ¦\/)(\d{1,2})\2(\d{1,2})$/;
5var r = str.match(reg);
6if(r==null)return false;
7var d= new Date(r[1], r[3]-1,r[4]);
8var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()
9return newStr==str
10}
11alert(strDateTime("2002-1-31"))
12alert(strDateTime("2002-1-41"))
13</script>
---------------------------------------------------------------
1<input name="date1" onblur="check(this)" type="text" value="2002-02-31"/>
1<script>
2function check(obj){
3if(strDate(obj.value)==false){alert('Error');obj.select();};
4}
5function strDate(str){
6var reg = /^(\d{1,4})(- ¦\/)(\d{1,2})\2(\d{1,2})$/;
7var r = str.match(reg);
8if(r==null)return false;
9var d= new Date(r[1], r[3]-1,r[4]);
10if(r[1]!=d.getFullYear())return false;
11if(r[3]!=(d.getMonth()+1))return false;
12if(r[4]!=d.getDate())return false;
13return true;
14}
15</script>
---------------------------------------------------------------
上述两方法对于“2003/01/20”也认为是正确的。
---------------------------------------------------------------
//下面是我用的函数,你试试吧
function isDate(datestr)
{
var myDatestr = datestr+"";
var aryDate = myDatestr.split('-');
if (aryDate.length!=3) return false;
var myYear = parseInt(aryDate[0]);
var myMonth = parseInt(aryDate[1]);
var myDay = parseInt(aryDate[2]);
if ((aryDate[0].length!=4) ¦ ¦(aryDate[1].length>2) ¦ ¦(aryDate[2].length>2)) return false;
if ((aryDate[1].length<1) ¦ ¦(aryDate[2].length<1)) return false;
if (isNaN(myYear) ¦ ¦isNaN(myMonth) ¦ ¦isNaN(myDay)) return false;
if ((myMonth>12) ¦ ¦(myMonth<1)) return false;
if (Date_getDay(myYear,myMonth)<myDay) return false; return true;
}