怎样验证录入框录入的字串是合法的日期

panic2 2002-12-09 10:32:11
怎样验证录入框录入的字串是合法的日期
用javascript函数
...全文
26 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbd8848 2002-12-09
  • 打赏
  • 举报
回复
function chkdate(datestr)
{
var lthdatestr;
if (datestr != "")
{lthdatestr= datestr.length} ;
else
{lthdatestr=0};

var tmpy="";
var tmpm="";
var tmpd="";
var status;
status=0;
if ( lthdatestr== 0)
{return 0};
for (i=0;i<lthdatestr;i++)
{ if (datestr.charAt(i)== '-')
{
status++;
}
if (status>2)
{
return 0;
}
if ((status==0) && (datestr.charAt(i)!='-'))
{
tmpy=tmpy+datestr.charAt(i);
}
if ((status==1) && (datestr.charAt(i)!='-'))
{
tmpm=tmpm+datestr.charAt(i);
}
if ((status==2) && (datestr.charAt(i)!='-'))
{
tmpd=tmpd+datestr.charAt(i);
}

}
year=new String (tmpy);
month=new String (tmpm);
day=new String (tmpd);
if ((tmpy.length!=4) || (tmpm.length!=2) || (tmpd.length!=2))
{
return 0;
}
if (!((1<=month) && (12>=month) && (31>=day) && (1<=day)) )
{
return 0;
}
if (!((year % 4)==0) && (month==2) && (day==29))
{
return 0;
}
if ((month<=7) && ((month % 2)==0) && (day>=31))
{
return 0;

}
if ((month>=8) && ((month % 2)==1) && (day>=31))
{
return 0;
}
if ((month==2) && (day==30))
{
return 0;
}

return 1;
}
zxhong 2002-12-09
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1160/1160813.xml?temp=6.939113E-03
zxhong 2002-12-09
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=1041
harryyang 2002-12-09
  • 打赏
  • 举报
回复
//驗證數字
function fnCheakIsNum(strValue)
{
strValue=new String(strValue);
var Reg;
Reg = /^\d+$/;
return (strValue.search(Reg)!=-1);
}
//驗證例如下的日期:2002/10/10
//可以檢查閏年.大於31天等所有的合法的日期
function fnCheckData(strValue)
{
//strValue
strValue=new String(strValue);
var Reg;
var iDotPos,iYear,strRight,iMonth,iDay;

Reg=/^(\d{2}|\d{4})\/(\d{1}|\d{2})\/(\d{1}|\d{2})$/;
if(Reg.test(strValue))
{
iDotPos=strValue.search("\/");
iYear=strValue.substring(0,iDotPos);
strRight=strValue.substring(iDotPos+1,strValue.length);
iDotPos=strRight.search("\/");
iMonth=strRight.substring(0,iDotPos);
iDay=strRight.substring(iDotPos+1,strRight.length); 
if(iMonth>12||iMonth==0)
{
return false;
}
if(iMonth==2)
{
if (iYear<100) iYear+=2000;
if ((iYear % 4 == 0 && iYear % 100 != 0) || iYear % 400 == 0)
{
if(iDay>29||iDay==0) return false;
}
else
{
if(iDay>28||iDay==0) return false;
}
return true;
}
else if(iMonth==1 || iMonth==3 || iMonth == 5 ||iMonth==7 || iMonth==8 || iMonth==10 || iMonth==12)
{
if(iDay>31||iDay==0)
{

return false;
}
}
else
{
if(iDay>30||iDay==0)
{

return false;
}
}

return true;
}
else
{

return false;
}
}
icycool 2002-12-09
  • 打赏
  • 举报
回复
偶也来贴一个
function isValidDate(strDate)
{
if (strDate.length != 8){
//alert("日期格式: YYYYMMDD !");
return false;
}

for (var i=0; i<strDate.length; i++)
{
if (isNaN(strDate.charAt(i))) {
//alert("无效的日期");
return false;
}
}

var vYear, vMth, vDay;
var DAYS_MTH_LEAPYEAR = new Array (31, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var DAYS_MTH_NOTLEAPYEAR = new Array (31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
vYear = strDate.substring(0,4);
vMth = strDate.substring(4,6);
vDay = strDate.substring(6);

if (! inRange(vMth, 1, 12)) {
return false;
}

if (isLeapYear(vYear)) {
if (! inRange(vDay, 1, DAYS_MTH_LEAPYEAR[parseInt(vMth)]))
return false;
}
else{
if (! inRange(vDay, 1, DAYS_MTH_NOTLEAPYEAR[parseInt(vMth)]))
return false;
}

return true;
}

function isLeapYear(vYear)
{
if (parseInt(vYear)%400==0 || (parseInt(vYear)%4==0 && parseInt(vYear)%100!=0))
return true;
else
return false;
}

function inRange(val, low, upper)
{
var num = parseInt(val, 10);
if (num<low || num>upper)
return false;
else
return true;
}

87,975

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧