判断日期:
function isDateString(sDate)
{
var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31];
var iaDate = new Array(3);
var year, month, day;
if (arguments.length != 1) return false;
iaDate = sDate.toString().split("-");
if (iaDate.length != 3) return false;
if (iaDate[1].length > 2 || iaDate[2].length > 2) return false;
year = parseFloat(iaDate[0]);
month = parseFloat(iaDate[1]);
day=parseFloat(iaDate[2]);
if (year < 1900 || year > 2100) return false;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
if (month < 1 || month > 12) return false;
if (day < 1 || day > iaMonthDays[month - 1]) return false;
return true;
}
function isDateString(sDate)
{
var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31];
var iaDate = new Array(3);
var year, month, day;
if (arguments.length != 1) return false;
iaDate = sDate.toString().split("-");
if (iaDate.length != 3) return false;
if (iaDate[1].length > 2 || iaDate[2].length > 2) return false;
year = parseFloat(iaDate[0]);
month = parseFloat(iaDate[1]);
day=parseFloat(iaDate[2]);
if (year < 1900 || year > 2100) return false;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
if (month < 1 || month > 12) return false;
if (day < 1 || day > iaMonthDays[month - 1]) return false;
return true;
}
http://www.52sdn.com/artid/417/417664.html
http://azhong.sun-liner.com/article.asp?id=49
function isDate()
{
var v=document.all["date"].value;
var patrn=/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/;
if (!patrn.exec(v))
alert('非法')
else
alert('合法')
} ---以下判断包括时间
function isDate1()
{
var v=document.all["date1"].value;
var patrn=/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$/;
if (!patrn.exec(v))
alert('非法')
else
alert('合法')
}
</script>
<body>
判断日期:
<input type=text size=10 id='date'>
<input type=button value='test' onclick="isDate();">
<br>
判断日期、时间:
<input type=text size=20 id='date1'>
<input type=button value='test' onclick="isDate1();">
</body>
判断日期还是下面的方法比较简便:function isDate( s ) {
var r = s.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if( r == null ) return false;
var d = new Date( r[1], r[3]-1, r[4] );
if( ! ( d.getFullYear() == r[1] && ( d.getMonth()+1 ) == r[3] && d.getDate() == r[4] ) ) return false;
return true;
}我就是不知道时间和日期时间怎么判断,正则表达式不会用啊(上面的方法也是从网上找到的),请高手指教,最好有个现成的函数!!!
date
^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578]
)|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[4
69])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\
s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([1
3579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((
0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((
0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9]
)|(2[0-8]))))))
time
^((2[0123])|([01]\d)|\d):(([0-5]\d)|\d)(:(([0-5]\d)|\d))?$你可以在网上找个自己需要的
<!--
var strTime = "03:33:34";
var strDate = "2004-1-22 " + strTime;
String.prototype.parseIntArray = function(){
var ar = this.match(/\d+/g);
if(!ar) return null;
for(var i=0;i<ar.length;i++)
ar[i] = parseInt(ar[i],10);
return ar;
}
String.prototype.isValidTime = function(){
var reg = /^\d{1,2}:\d{1,2}:\d{1,2}$/;
if(!reg.test(this)) return false;
var ar = this.parseIntArray();
if(ar[0]<24 && ar[1]<60 && ar[2]<60) return true;
return false;
}
String.prototype.isValidDate = function(){
var reg = /^\d{4}-\d{1,2}-\d{1,2}$/;
if(!reg.test(this)) return false;
var ar = this.parseIntArray();
var d = new Date(this.replace("-","/"));
if(d.getFullYear() == ar[0] && (d.getMonth()+1) == ar[1] && d.getDate() == ar[2]) return true;
return false;
}
String.prototype.isValidDateTime = function(){
var ar = this.split(" ");
if(!ar || ar.length!=2) return false;
//alert(ar[0].isValidDate());
//alert(ar[1].isValidTime());
return (ar[0].isValidDate()&&ar[1].isValidTime());
}
alert(strTime.isValidTime());
alert(strDate.isValidDateTime());
//-->
</script>