精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● ASP>>VBScript & JavaScript>>js代码:检查日期(函数)

主题:js代码:检查日期(函数)
发信人: yahao(亚豪)
整理人: qcrsoft(2002-05-21 17:43:16), 站内信件
/*
'###############################################################################
'# 函数:CheckDate
'# 说明:检查日期变量格式和值是否合法,返回真/假
'# 参数:pFMT - 格式;pDate - 日期变量;pShowMsg - 是否显示错误信息
'# 作者:Yahao
'###############################################################################
*/
function CheckDate(pFMT,pDate,pShowMsg)
{
var ResultOK = null

/*-- 日期格式:(四位)年份 + (至多两位)月份 + (至多两位)日期 --*/
/*-- 分割符号:"." --*/
var RegDateDot = /\d{4}\.{1}\d{1,2}\.{1}\d{1,2}/
/*-- 分割符号:"-" --*/
var RegDateLine = /\d{4}-{1}\d{1,2}-{1}\d{1,2}/

/*-- 用正则表达式判断格式 --*/
switch (pFMT)
{
case 1: //.
ResultOK = RegDateDot.test(pDate)
break
case 2: //-
ResultOK = RegDateLine.test(pDate)
break
default: //.
ResultOK = RegDateDot.test(pDate)
break
}

/*-- 处理并返回结果 --*/
if(!ResultOK)
{
if(pShowMsg) alert("非法日期:日期格式错误!")
return false
}

/*-- 检查月份和日期是否超过可能的最大值 --*/
var mYear = 0,mMonth = 0,mDay = 0
var iPos1 = 0,iPos2 = 0
var sDate = pDate.toString()
var mSepChar = ((pFMT == 1) ? ".":"-")

/*-- 各月的天数 --*/
var MonthDays=new Array(31,28,31,30,31,30,31,31,30,31,30,31)

/*-- 提取年月日的值 --*/
iPos1 = sDate.indexOf(mSepChar)
iPos2 = sDate.indexOf(mSepChar,iPos1+1)

mYear = sDate.substring(0,iPos1)
mMonth = sDate.substring(iPos1+1,iPos2)
mDay = sDate.substr(iPos2+1)

/*-- 判断年份 --*/
if(mYear <= 0 || mYear > 9999)
{
if(pShowMsg) alert("非法日期:年份过小或者过大,超出限制 (1-9999)!")
return false
}

/*-- 判断月份 --*/
if(mMonth <= 0 || mMonth > 12)
{
if(pShowMsg) alert("非法日期:没有这个月份!")
return false
}

/*-- 计算所在月的正确天数 --*/
var RightDay = 0
if(mMonth == 2)
RightDay = (((mYear%4 == 0) && (mYear%100 != 0) || (mYear%400 == 0))? 29: 28)
else
RightDay = MonthDays[mMonth]

/*-- 判断日 --*/
if(mDay <= 0 || mDay > RightDay)
{
if(pShowMsg) alert("非法日期:该月没有这天!")
return false
}

/*-- 格式和值均正确,返回真 --*/
return true
}

------------------------------------------------------------------
请将上述代码放在<SCRIPT LANGUAGE="JavaScript">与</Script>之间调用。



----
█████████
█┌─────┐█
█│ 广州社区 │█
█│  ASP 版  │█
█│  版★副  │█
█│  专用章  │█
█└─────┘█
█████████

   欢迎光临ASP版

[关闭][返回]