//校验日期的函数
//在最终校验时使用
//source 校验的字符窜
function checkDate(source) {
var str = source;
if (str.length == 0) return true;
var arList = str.split("-")
if (arList.length != 3){ return false; }
var iYear = parseInt(arList[0],10);
var iMonth = parseInt(arList[1],10);
var iDay = parseInt(arList[2],10);
if(isNaN(iYear) || isNaN(iMonth) || isNaN(iDay)) {return false;}
if (iYear<1900 || iYear>2099){ return false; }
if (iMonth>12 || iMonth<1){ return false; }
if ((iMonth==1 || iMonth==3 || iMonth==5 || iMonth==7 || iMonth==8 || iMonth==10 || iMonth==12) && (iDay>31 || iDay<1)){ return false; }
if ((iMonth==4 || iMonth==6 || iMonth==9 || iMonth==11) && (iDay>30 || iDay<1)){ return false; }
if (iMonth==2){
if (LeapYear(iYear)){
if (iDay>29 || iDay<1){ return false; }
}
else{
if (iDay>28 || iDay<1){ return false; }
}
}
return true;
}//判断是否闰年
//参数 intYear 代表年份的值
//return true: 是闰年 false: 不是闰年
function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}
//在最终校验时使用
//source 校验的字符窜
function checkDate(source) {
var str = source;
if (str.length == 0) return true;
var arList = str.split("-")
if (arList.length != 3){ return false; }
var iYear = parseInt(arList[0],10);
var iMonth = parseInt(arList[1],10);
var iDay = parseInt(arList[2],10);
if(isNaN(iYear) || isNaN(iMonth) || isNaN(iDay)) {return false;}
if (iYear<1900 || iYear>2099){ return false; }
if (iMonth>12 || iMonth<1){ return false; }
if ((iMonth==1 || iMonth==3 || iMonth==5 || iMonth==7 || iMonth==8 || iMonth==10 || iMonth==12) && (iDay>31 || iDay<1)){ return false; }
if ((iMonth==4 || iMonth==6 || iMonth==9 || iMonth==11) && (iDay>30 || iDay<1)){ return false; }
if (iMonth==2){
if (LeapYear(iYear)){
if (iDay>29 || iDay<1){ return false; }
}
else{
if (iDay>28 || iDay<1){ return false; }
}
}
return true;
}//判断是否闰年
//参数 intYear 代表年份的值
//return true: 是闰年 false: 不是闰年
function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}
解决方案 »
- 有关js调用控件的问题,急急急!
- 100分--如何从一段文本中,取出所有的邮箱
- jQuery Treeview 插件异步显示数据时如何保持位置?
- 递归遍历有文本节点 nodeType=3如何去除firefox下的脚本
- 我写了一个评论 需要跨站显示和提交 但跨站有问题 我用的xmlhttprequest 有没有新方法 急
- 问个关于JQuery的小白问题。在eclipse中的JSP使用JQuery,下载的js放到哪个文件夹,JSP中如何引用?
- 为什么AJAX也就是XMLHTTP为什么只能返回英文,要是中文就为空!!!!!!!!!
- window.onload 沒辦法運行
- 根据要求,让文本框可以写入信息或不可写入信息。也就是如何让其发灰。
- MSDN中的树形菜单如何实现?
- 请教!
- 如何实现:打开一个新窗口,代替登陆窗口,并去掉菜单栏和工具栏?
<script>function checkDateInput(obj) //用于检查日期输入是否正确 (日期输入范围为1930-01-01 到2200-12-31)
{
if (obj.value.length==0) return false;
var objValue=obj.value.replace(/[-\.]/g,"/");
var a=new Date(objValue);
if (isNaN(a))
{
obj.value="";
alert("!!!!请注意:\n您刚才输入的日期不正确,我们已进处了清除。");
obj.focus();
return false;
}
var b;
if (a.getFullYear()<1900||a.getFullYear()>2200)
{var Today=new Date();
b=Today.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate();
}
else if (a.getFullYear()<1930)
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;
}
return true;
}
</script>
这样依据长度、“-”的位置,“-”位置前后的数据长度和数值的大小来测定。
在vbscript中有split函数可以拆分以特定字符分割的字符串,这里是使用“-”来分割的。然后可以使用结果数组来检查长度和大小。这样可以达到你所需要的要求。