<form method="POST" action="02.asp" language="JavaScript" name="form1" >
<input type="text" name="tom" size="20" style="font-size: 9PT; color: #000000; border: 1px solid #000000; padding: 0; maxlength="10">
<input type="button" name="Button" value="Button" onclick="chkdate()">
</form>
<script>
function chkdate()
{if(form1.tom.value!=form1.tom.value.match(/\d{4}-\d{2}-\d{2}/ig))
alert("Error!")
}
</script>
<input type="text" name="tom" size="20" style="font-size: 9PT; color: #000000; border: 1px solid #000000; padding: 0; maxlength="10">
<input type="button" name="Button" value="Button" onclick="chkdate()">
</form>
<script>
function chkdate()
{if(form1.tom.value!=form1.tom.value.match(/\d{4}-\d{2}-\d{2}/ig))
alert("Error!")
}
</script>
判断输入框中输入的日期格式为yyyy-mm-dd和正确的日期
*/
function IsDate(sm,mystring) {
var reg = /^(\d{4})-(\d{2})-(\d{2})$/;
var str = mystring;
var arr = reg.exec(str);
if (str=="") return true;
if (!reg.test(str)&&RegExp.$2<=12&&RegExp.$3<=31){
alert("请保证"+sm+"中输入的日期格式为yyyy-mm-dd或正确的日期!");
return false;
}
return true;
}
function IsDate(DateString , Dilimeter)
{
if (DateString==null) return false;
if (Dilimeter=='' || Dilimeter==null) Dilimeter = '-';
var tempy='';
var tempm='';
var tempd='';
var tempArray;
if (DateString.length<8 || DateString.length>10) return false;
tempArray = DateString.split(Dilimeter);
if (tempArray.length!=3) return false;
//if (tempArray[0].length==4)
//{
tempy = tempArray[0];
tempd = tempArray[2];
//}
//else
//{
// tempy = tempArray[2];
// tempd = tempArray[1];
//}
tempm = tempArray[1];
var tDateString = tempy + '/'+tempm + '/'+tempd;
var tempDate = new Date(tDateString);
if (isNaN(tempDate)) return false;if (((tempDate.getUTCFullYear()).toString()==tempy) && (tempDate.getMonth()==myparseInt(tempm)-1) && (tempDate.getDate()==myparseInt(tempd)))
{
return true;
}
else
{
return false;
}
}//去掉月份或日期前的0,比如2003-02-04 ->2003-2-4
function myparseInt(num)
{
var tempnum=num + "";
while(tempnum.substr(0,1)=="0") {
tempnum=tempnum.substr(1);
}
return(parseInt(tempnum));
}
<!--
function getDateByMask(s,m){
if (s.length!=m.length){
return false;
}
try{
m=m.replace(/Y/g,"y").replace(/D/g,"d");
if (m.indexOf("yyyy")>-1)
return new Date(
s.substr(m.indexOf("yyyy"),4),
s.substr(m.indexOf("MM"),2)-1,
s.substr(m.indexOf("dd"),2)
)
else return new Date(
s.substr(m.indexOf("yy"),2),
s.substr(m.indexOf("MM"),2)-1,
s.substr(m.indexOf("dd"),2)
)
}
catch (e)
{
return null;
}
}/**************************** test: *************************************/
alert(getDateByMask("2002/02/01","yyyy/MM/dd"))
alert(getDateByMask("02/02/01","yy/MM/dd"))function checkDateByMask(s,m){
if (s.length!=m.length){
return false;
}
try{
var d = getDateByMask(s,m)
m=m.replace(/Y/g,"y").replace(/D/g,"d");
if (m.indexOf("yyyy")>-1)
return (
d.getFullYear() == s.substr(m.indexOf("yyyy"),4)
&& d.getMonth() == s.substr(m.indexOf("MM"),2)-1
&& d.getDate() == s.substr(m.indexOf("dd"),2)
)
else return (
d.getYear() == s.substr(m.indexOf("yy"),2)
&& d.getMonth() == s.substr(m.indexOf("MM"),2)-1
&& d.getDate() == s.substr(m.indexOf("dd"),2)
)
}
catch (e)
{
return false;
}
}/**************************** test: *************************************/
alert(checkDateByMask("2002/02/01","yyyy/MM/dd"))
alert(checkDateByMask("02/02/01","yy/MM/dd"))
alert(checkDateByMask("2002/13/01","yyyy/MM/dd"))
alert(checkDateByMask("02/02/30","yy/MM/dd"))
//-->
</SCRIPT>注意在日期格式中,MM表示月而mm表示分。
您的方法有时有错误,把光标前移就可以提交,比如在输入错误日期如“1234135554666”,把光标放在“..555..”时,就可以提交。
您的方法有时有错误,把光标前移就可以提交,比如在输入错误日期如“1234135554666”,把光标放在“..555..”时,就可以提交。
http://jkisjk.vip.sina.com/code/html/forCheckDateInput.htm更多,如日历等:
http://jkisjk.vip.sina.com/code/html/index.html
或者在Vbscript 里改写一下,在javascript里面调用,更简单。IsDate功能很强大,象2002/12/10 2002-12-10 2003-11-15:12:45 都能认识
<script language="vbscript">function myCheckDate(val)
if IsDate(val) then
myCheckDate=true
else
myCheckDate=false
end if
end function
<script><script>alert(myCheckDate("2005-10-14"))
<script>