烦琐的日期校验问题--在页面实现

zhy82 2003-10-16 06:50:45
输入格式 1982-3-2
闰年,什么的都要判断
我写了一些代码,还有一些加不上,请高手帮忙

<SCRIPT language=JavaScript>
function isNum(s)
{
var len = s.length;
var i;
var mychar;
for (i = 0; i < len ; i ++){
mychar = s.charAt(i);
if (mychar!='-')
if ((mychar < '0')||(mychar > '9')){
alert("日期只能包含数字 !!");
return false;
}
}return true;
}

function check(date)
{
var listArray=date.split("-");

if (listArray.length!=3)
{
alert("格式错误(年-月-日)");
return false;
}
else
{
isNum(listArray[0]);
isNum(listArray[1]);
isNum(listArray[2]);
}
if(parseInt(listArray[0])>1900||parseInt(listArray[0])<3000)
{
alert("年错误");
return false;
}
else if(parseInt(listArray[1])<1||parseInt(listArray[1])>12)
{
alert("月错误");
return false;
}
else if(parseInt(listArray[2])<1||parseInt(listArray[2])>31)
{
alert("日期错误");
return false;
}
return true;
}
function datecheck(){
with(document.cxjy)
{
if (check(StartDate.value)&&check(EndDate.value))
document.cxjy.submit();
else
return false;
}
}
document.onmousedown=Click;
function Click()
{
if (event.button!=1)
alert('欢迎使用手机系统');
}

</script>
...全文
27 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhy82 2003-10-16
  • 打赏
  • 举报
回复
哦,谢谢,那个打印的问题能帮我开个新贴解决一下么,
就是我web.execWB来打印页面,就是上面这个,要去掉页眉跟页脚该怎么办,这个我先结帖好
了,麻烦你啊,先谢谢了
nolonely 2003-10-16
  • 打赏
  • 举报
回复
注意我在submit button中是用了return **
如果是返回false,那么点击的事件也将无效,不会提交,否则便会提交
zhy82 2003-10-16
  • 打赏
  • 举报
回复
恩,谢谢,我已经在加警告了,看来今天晚上不用睡觉了,光是正则表达式就够我看的了
不过我在想那个查询的ACTION调用是不是那样啊,是提交的功能么,好象是又返回去检查下一组数据了,是不是少一句document.form.submit()啊
nolonely 2003-10-16
  • 打赏
  • 举报
回复
在"return false"的前面加alert('格式错误')

你也可以写得更详细些,

if(d.getFullYear()==r[1]&&d.getMonth()==r[2]-1&&d.getDate()==r[3])return true
else{
alert("日期格式错误")
return false
}

还有
if(g(txt1.value,txt2.value))return true
else{
alert("结束日期要大于开妈日期")
return false
}

zhy82 2003-10-16
  • 打赏
  • 举报
回复
非常感谢,不过,一点错误提示也没有看来还是要我自己加我,不知道什么时候能够看懂
向你学习,有qq什么的联系方式没有,好让我随时请教(不知道你愿意不??)
nolonely 2003-10-16
  • 打赏
  • 举报
回复
改好了
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>查询交易明细</title>
<style type="text/css">
<!--
@import url(aa.css);
-->
</style>
<script language="JavaScript">
function check(txt1,txt2){
if(!isDate(txt1.value)||!isDate(txt2.value))return false
return g(txt1.value,txt2.value)
}
function isDate(str){
var re=/^(\d{1,4})-(\d{1,2})-(\d{1,2})$/
var r=str.match(re)
if(!r)return false
var d=new Date(r[1],r[2]-1,r[3])
return (d.getFullYear()==r[1]&&d.getMonth()==r[2]-1&&d.getDate()==r[3])
}
function g(d1,d2){
return Date.parse(d1.replace(/-/g,"/"))<Date.parse(d2.replace(/-/g,"/"))
}
</script>
</head>

<body>
<table width="630" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td height="50" colspan="3" valign="top"><img src="images/table_01.jpg" width="630" height="50"></td>
</tr>
<tr>
<td width="40" height="327" valign="top"><img src="images/table_02.jpg" width="40" height="327"></td>
<td width="554" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td width="554" height="327" valign="top">
<form name="form1" method="post" action="../MemberServlet">
<table width="100%" height="100%" class="biaodan1"borderColor=#99CCFF cellSpacing=0
borderColorDark=#ffffff cellPadding=1 border=1>
<!--DWLayoutTable-->
<tr>
<td height="32" colspan="2" align="center" valign="middle" bgcolor="#FFFFFF">
起始日期
<input type="text" name="StartDate" size="14" maxlength="18">
<input type="hidden" name="strUrl" value="queryHistoryDetail.jsp" ></td>
<td height="32" colspan="2" align="center" valign="middle" bgcolor="#FFFFFF">
终止日期
<input type="text" name="EndDate" size="14" maxlength="18">
<input type="hidden" name="PageCounter" value="-1"> </td>
<td width="115" height="32" align="center" valign="middle" bgcolor="#FFFFFF">
<input type="submit" name="Submit2" value=" 查 询 " onClick="return check(StartDate,EndDate)"> </td>
</tr>
<tr>
<td colspan="5" align="center" valign="middle"><!--DWLayoutEmptyCell--> </td>
</tr>
</table>
</form></td>
</tr>
<!--DWLayoutTable-->
</table></td>
<td width="36" valign="top"><img src="images/table_04.jpg" width="36" height="327"></td>
</tr>
<tr>
<td height="34" colspan="3" valign="top"><img src="images/table_05.jpg" width="630" height="34"></td>
</tr>
<tr>
<td height="26" colspan="3" valign="top"><img src="images/table_06.jpg" width="630" height="26"></td>
</tr>
</table>
</body>
</html>
zhy82 2003-10-16
  • 打赏
  • 举报
回复
麻烦你帮我加上去,我看不懂这么麻烦的正则表达式啊
nolonely 2003-10-16
  • 打赏
  • 举报
回复
那有什么问题?第一个是正确的,第二个是错误的日期啊
zhy82 2003-10-16
  • 打赏
  • 举报
回复
怎么没有复制到,不好意思,再贴
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>查询交易明细</title>
<style type="text/css">
<!--
@import url(aa.css);
-->
</style>
</head>

<body>
<table width="630" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td height="50" colspan="3" valign="top"><img src="images/table_01.jpg" width="630" height="50"></td>
</tr>
<tr>
<td width="40" height="327" valign="top"><img src="images/table_02.jpg" width="40" height="327"></td>
<td width="554" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td width="554" height="327" valign="top">
<form name="form1" method="post" action="../MemberServlet">
<table width="100%" height="100%" class="biaodan1"borderColor=#99CCFF cellSpacing=0
borderColorDark=#ffffff cellPadding=1 border=1>
<!--DWLayoutTable-->
<tr>
<td height="32" colspan="2" align="center" valign="middle" bgcolor="#FFFFFF">
起始日期
<input type="text" name="StartDate" size="14" maxlength="18">
<input type="hidden" name="strUrl" value="queryHistoryDetail.jsp" ></td>
<td height="32" colspan="2" align="center" valign="middle" bgcolor="#FFFFFF">
终止日期
<input type="text" name="EndDate" size="14" maxlength="18">
<input type="hidden" name="PageCounter" value="-1"> </td>
<td width="115" height="32" align="center" valign="middle" bgcolor="#FFFFFF">
<input type="submit" name="Submit2" value=" 查 询 " onClick="datecheck()"> </td>
</tr>
<tr>
<td colspan="5" align="center" valign="middle"><!--DWLayoutEmptyCell--> </td>
</tr>
</table>
</form></td>
</tr>
<!--DWLayoutTable-->
</table></td>
<td width="36" valign="top"><img src="images/table_04.jpg" width="36" height="327"></td>
</tr>
<tr>
<td height="34" colspan="3" valign="top"><img src="images/table_05.jpg" width="630" height="34"></td>
</tr>
<tr>
<td height="26" colspan="3" valign="top"><img src="images/table_06.jpg" width="630" height="26"></td>
</tr>
</table>
</body>
</html>
zhy82 2003-10-16
  • 打赏
  • 举报
回复
<script language="JavaScript">
<!--
function isDate(str){
var re=/^(\d{1,4})-(\d{1,2})-(\d{1,2})$/
var r=str.match(re)
var d=new Date(r[1],r[2]-1,r[3])
return (d.getFullYear()==r[1]&&d.getMonth()==r[2]-1&&d.getDate()==r[3])
}
alert(isDate("2002-2-2"))
alert(isDate("2002-2-30"))
//-->
</script>
nolonely 2003-10-16
  • 打赏
  • 举报
回复
我一直用这个
alert(isDate("2002-2-2"));//返回true
alert(isDate("2002-2-30"));//返回false

贴出你使用时的代码
zhy82 2003-10-16
  • 打赏
  • 举报
回复
好象没用的啊,一开始怎么会出现警告
zhy82 2003-10-16
  • 打赏
  • 举报
回复
顺便帮我解决一下这个问题好么

紧急求助!!!打印调用WebBrowser.ExecWB()时怎么样才能不显示页眉和页脚 (zhy82 )
zhy82 2003-10-16
  • 打赏
  • 举报
回复
我试试看,成功的话,马上给分
nolonely 2003-10-16
  • 打赏
  • 举报
回复
FAQ中还有多个答案,不过我想信这个是最简单的了
nolonely 2003-10-16
  • 打赏
  • 举报
回复
<script language="JavaScript">
<!--
function isDate(str){
var re=/^(\d{1,4})-(\d{1,2})-(\d{1,2})$/
var r=str.match(re)
var d=new Date(r[1],r[2]-1,r[3])
return (d.getFullYear()==r[1]&&d.getMonth()==r[2]-1&&d.getDate()==r[3])
}
alert(isDate("2002-2-2"))
alert(isDate("2002-2-30"))
//-->
</script>

87,904

社区成员

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

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