用Javascript校验日期录入的合法性? 不用自己写校验了找一个日期选择的JS模块就OK了,很好用的你搜索一下论坛吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 还是asp.net还用,这些功能都有控件可用!! <script LANGUAGE="JScript"> /*-- 判断一个字符串(YYYY-MM-DD)的日期是否正确 -- */function Date_istrue(asDate){ var lsDate = asDate + ""; var loDate = lsDate.split("-"); if (loDate.length!=3) return false; var liYear = parseInt(loDate[0]); var liMonth = parseInt(loDate[1]); var liDay = parseInt(loDate[2]); if ((loDate[0].length>4)||(loDate[1].length>2)||(loDate[2].length>2)) return false; if (isNaN(liYear)||isNaN(liMonth)||isNaN(liDay)) return false; if ((liYear<1900)||(liYear>3000)) return false; if ((liMonth>12)||(liMonth<=0)) return false; if (Date_getDay(liYear,liMonth)<liDay) return false; return !isNaN(Date.UTC(liYear,liMonth,liDay));} /*-- 返回某年某月的天数-- */function Date_getDay(aiYear,aiMonth){ var loDay = [0,31,28,31,30,31,30,31,31,30,31,30,31]; if (aiYear%4==0) loDay[2] = 29; return loDay[aiMonth];}</script><input type="text" value="" id="indate"><INPUT TYPE="button" onclick="alert(Date_istrue(indate.value))" value="test"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><meta name="GENERATOR" content="Microsoft FrontPage 4.0"><meta name="ProgId" content="FrontPage.Editor.Document"><title>New Page 1</title></head><body>请输入时间:<input onblur=checkDateInput(this)><br><br></body></html><script>function checkDateInput(obj) //用于检查日期输入是否正确 { if (obj.value.length==0) return false; var objValue=obj.value.replace(/[-\.]/g,"/"); try { var a=new Date(objValue); if (isNaN(a)) { obj.value=""; alert("!!!!请注意:\n您刚才输入的日期不正确,我们已进处了清除。"); obj.focus(); return false; } var b; if (a.getFullYear()<1900||a.getFullYear()>2100) {var Today=new Date(); b=Today.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate(); } else if (a.getFullYear()<1950) b=(a.getFullYear()+100)+"-"+(a.getMonth()+1)+"-"+a.getDate(); else b=a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate(); obj.value=obj.value.replace(/[-\.\/]0*/g,"-"); if (b!=obj.value) { obj.value=b; alert("!!!!请注意:\n您刚才输入的日期不正确,我们已进行了修改。"); obj.select(); obj.focus(); return false; } } catch(Exception) { obj.value=""; alert("!!!!请注意:\n您刚才输入的日期不正确,我们已进处了清除。"); obj.focus(); return false; } }</script> //--- 方法名: judgeInputDate(AYear,AMonth,ADay)//--- 功能: 判断输入的年、月、日是否合法,时间范围在1900~2100年之间//--- 返回: 合法返回1,不合法返回0 //--- AYear : 输入的年份//--- AMonth: 输入的月份//--- ADay : 输入的日子//--- 创建日期: 2001-06-27 最近更新日期: 2001-06-29//--- 创建程序员: xg_delayth 最近更新程序员: xg_delayth //--- 维护程序员: xg_delayth function judgeInputDate(AYear,AMonth,ADay){ var tempYear,tempMonth,tempDay; //--- 非闰年的每个月天数 var constMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31); //--- 一般输入性判断 if ((AYear.length > 4) || (AMonth.length > 2)){return 0;} if ((judgeStringType(AYear,"iNChar") == false) || (judgeStringType(AMonth,"iNChar") == false) || (judgeStringType(ADay,"iNChar") == false)){ return 0 } //--- 取得输入值 tempYear = parseInt(AYear); if((tempYear > 2100) || (tempYear < 1900)){return 0;} tempMonth = parseInt(trimSubStr(AMonth,"0",1)); tempDay = parseInt(trimSubStr(ADay,"0",1)); //--- 判断月合法性 if ((tempMonth == 0) || (tempMonth > 12)){return 0;} if (tempMonth != 2){ if((tempDay > constMonth[tempMonth - 1]) || (tempDay == 0)){return 0;} } else{ //--- 根据闰年判断 if((tempYear % 4 == 0) && (tempYear % 100 != 0) || (tempYear % 400 == 0)){ if((tempDay > 29) || (tempDay == 0)){return 0;} }else{ if((tempDay > constMonth[1]) || (tempDay == 0)){return 0;} } } return 1 } unselectable="On"问题 同一编号为什么会覆盖啊 web页面调用ActiveX控件 请问下html中的js代码浏览器是怎么解析的呢? jsp ssh项目: 一个空格字符串的问题 网站中有很多页面是通过js跳转的,怎样获取js中的URL? 求javascript的数组对象的所有方法和属性. 一个简单的问题 50分!求全面的javascript函数介绍电子文档。[email protected] 有没有办法实现一个真实的弹出窗口(请看条件) 如何防止网页回退啊?哪位高人支招?绝对有分!!
/*-- 判断一个字符串(YYYY-MM-DD)的日期是否正确 -- */
function Date_istrue(asDate){
var lsDate = asDate + "";
var loDate = lsDate.split("-");
if (loDate.length!=3) return false;
var liYear = parseInt(loDate[0]);
var liMonth = parseInt(loDate[1]);
var liDay = parseInt(loDate[2]);
if ((loDate[0].length>4)||(loDate[1].length>2)||(loDate[2].length>2)) return false;
if (isNaN(liYear)||isNaN(liMonth)||isNaN(liDay)) return false;
if ((liYear<1900)||(liYear>3000)) return false;
if ((liMonth>12)||(liMonth<=0)) return false;
if (Date_getDay(liYear,liMonth)<liDay) return false;
return !isNaN(Date.UTC(liYear,liMonth,liDay));
} /*-- 返回某年某月的天数-- */
function Date_getDay(aiYear,aiMonth){
var loDay = [0,31,28,31,30,31,30,31,31,30,31,30,31];
if (aiYear%4==0) loDay[2] = 29;
return loDay[aiMonth];
}
</script>
<input type="text" value="" id="indate">
<INPUT TYPE="button" onclick="alert(Date_istrue(indate.value))" value="test">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>New Page 1</title>
</head><body>
请输入时间:<input onblur=checkDateInput(this)>
<br>
<br>
</body></html>
<script>
function checkDateInput(obj) //用于检查日期输入是否正确
{
if (obj.value.length==0) return false;
var objValue=obj.value.replace(/[-\.]/g,"/");
try
{
var a=new Date(objValue);
if (isNaN(a))
{
obj.value="";
alert("!!!!请注意:\n您刚才输入的日期不正确,我们已进处了清除。");
obj.focus();
return false;
}
var b;
if (a.getFullYear()<1900||a.getFullYear()>2100)
{var Today=new Date();
b=Today.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate();
}
else if (a.getFullYear()<1950)
b=(a.getFullYear()+100)+"-"+(a.getMonth()+1)+"-"+a.getDate();
else b=a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate();
obj.value=obj.value.replace(/[-\.\/]0*/g,"-");
if (b!=obj.value)
{
obj.value=b;
alert("!!!!请注意:\n您刚才输入的日期不正确,我们已进行了修改。");
obj.select();
obj.focus();
return false;
}
}
catch(Exception)
{
obj.value="";
alert("!!!!请注意:\n您刚才输入的日期不正确,我们已进处了清除。");
obj.focus();
return false;
}
}</script>
//--- 功能: 判断输入的年、月、日是否合法,时间范围在1900~2100年之间
//--- 返回: 合法返回1,不合法返回0
//--- AYear : 输入的年份
//--- AMonth: 输入的月份
//--- ADay : 输入的日子
//--- 创建日期: 2001-06-27 最近更新日期: 2001-06-29
//--- 创建程序员: xg_delayth 最近更新程序员: xg_delayth
//--- 维护程序员: xg_delayth
function judgeInputDate(AYear,AMonth,ADay){
var tempYear,tempMonth,tempDay;
//--- 非闰年的每个月天数
var constMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
//--- 一般输入性判断
if ((AYear.length > 4) || (AMonth.length > 2)){return 0;}
if ((judgeStringType(AYear,"iNChar") == false) || (judgeStringType(AMonth,"iNChar") == false)
|| (judgeStringType(ADay,"iNChar") == false)){ return 0 }
//--- 取得输入值
tempYear = parseInt(AYear);
if((tempYear > 2100) || (tempYear < 1900)){return 0;}
tempMonth = parseInt(trimSubStr(AMonth,"0",1));
tempDay = parseInt(trimSubStr(ADay,"0",1));
//--- 判断月合法性
if ((tempMonth == 0) || (tempMonth > 12)){return 0;}
if (tempMonth != 2){
if((tempDay > constMonth[tempMonth - 1]) || (tempDay == 0)){return 0;}
} else{ //--- 根据闰年判断
if((tempYear % 4 == 0) && (tempYear % 100 != 0) || (tempYear % 400 == 0)){
if((tempDay > 29) || (tempDay == 0)){return 0;}
}else{
if((tempDay > constMonth[1]) || (tempDay == 0)){return 0;}
}
}
return 1
}