看看下面的
str = 要验证的日期字符串
var temp="";
var tempy=''; //year
var tempm=''; //month
var tempd=''; //date
var tempArray; //store the date
if(str.length<8 && str.length>10)
{
temp = temp + "“" + lable + "”" + "日期长度为8-10位!" + "\n";
}
tempArray = str.split('-'); //split the str by '-'
if (tempArray.length!=3)
{
temp = temp + "“" + lable + "”" + "日期格式不对!正确的应为(年-月-日)" + "\n";
}
if (tempArray[0].length==4)
{
tempy = tempArray[0];
tempm = tempArray[1];
tempd = tempArray[2];
}
else
{
temp = temp + "“" + lable + "”" + "日期格式不对!正确的应为(年-月-日)" + "\n";
}
var tstr = tempy + '/'+tempm + '/'+tempd+' 8:0:0';
var tempDate = new Date(tstr);
if (isNaN(tempDate)) temp = temp + "“" + lable + "”" + "无效的日期输入!" + "\n";
if (((tempDate.getUTCFullYear()).toString()==tempy) && (tempDate.getMonth()==eval(tempm+'-1')) && (tempDate.getDate()==eval(tempd)))
temp = temp;
else
{
temp = temp + "“" + lable + "”" + "无效的日期输入!" + "\n";
}
如果temp==""则表示日期正确,否则,为出错信息
str = 要验证的日期字符串
var temp="";
var tempy=''; //year
var tempm=''; //month
var tempd=''; //date
var tempArray; //store the date
if(str.length<8 && str.length>10)
{
temp = temp + "“" + lable + "”" + "日期长度为8-10位!" + "\n";
}
tempArray = str.split('-'); //split the str by '-'
if (tempArray.length!=3)
{
temp = temp + "“" + lable + "”" + "日期格式不对!正确的应为(年-月-日)" + "\n";
}
if (tempArray[0].length==4)
{
tempy = tempArray[0];
tempm = tempArray[1];
tempd = tempArray[2];
}
else
{
temp = temp + "“" + lable + "”" + "日期格式不对!正确的应为(年-月-日)" + "\n";
}
var tstr = tempy + '/'+tempm + '/'+tempd+' 8:0:0';
var tempDate = new Date(tstr);
if (isNaN(tempDate)) temp = temp + "“" + lable + "”" + "无效的日期输入!" + "\n";
if (((tempDate.getUTCFullYear()).toString()==tempy) && (tempDate.getMonth()==eval(tempm+'-1')) && (tempDate.getDate()==eval(tempd)))
temp = temp;
else
{
temp = temp + "“" + lable + "”" + "无效的日期输入!" + "\n";
}
如果temp==""则表示日期正确,否则,为出错信息
解决方案 »
- mvc结构,vm视图怎么获取自定义常量
- js怎么判断图层的显示和隐藏?
- js报错缺少对象
- javascript中如何控制asp:ImageButton显示和隐藏
- |zyciis| 急求:为什么我的网站下面的一个虚拟目录会访问到我的网站的Web.config呢? 如果不想让他访问到要怎么办 谢谢
- 下面的代码将标签中 my属性值放入标签innerText中,提示错误,是什么原因??
- 请问哪儿有.net2005和sql2000的安装程序啊?
- 我现在把dataset从streamwriter写到excel上,但是只能保存在服务器端,怎么让它可以保存在客户端上?help
- 我在windows2003中安装了.net2003遇到了问题,请指教!急!
- 会使用eWebEdior编辑器的请进
- 高分!自动更新程序设计
- 大家用过Webdiyer兄的AspNetPager的分页控件吗?
2003-4-10 14:20:46
很久以前写的一个通用验证函数,大家不要笑啊,许多东西没有完善比如日期验证。
<SCRIPT LANGUAGE=""JavaScript"" src=""valid.js"">
</SCRIPT><TABLE cellspacing=0 cellpadding=0 border=0 align=center>
<FORM METHOD=POST ACTION=""bbs_new.asp"" name=""form1"" id=""form1"">
<TR>
<TD>姓 名:<INPUT TYPE=""text"" NAME=""txtName"" class=smallinput re=1 size=22></TD>
<TD>密 码:<INPUT TYPE=""password"" NAME=""txtPWD"" class=smallinput re=1 size=22></TD>
</TR>
<TR>
<TD colspan=2>主 题:<INPUT TYPE=""text"" NAME=""txtTitle"" class=smallinput size=53 re=1></TD>
</TR>
<TR>
<TD colspan=2>表 情:<input type=hidden name=City_StreetID value=<%=Request(""City_StreetID"")%> ></TD>
</TR>
<TR>
<TD colspan=2><%ShowExpression%></TD>
</TR>
<TR>
<TD>内 容:</TD>
<TD>
<INPUT TYPE=""button"" name=""butn"" class=buttonface value=""提交"" onclick=""javascript:ck();"" />
<INPUT TYPE=""reset"" Value=""清除"" class=buttonface name=""reset"" />
</TD>
</TR>
<TR>
<td colspan=2>
<textarea NAME=""txtContent"" cols=""49"" rows=""15""></textarea>
</td>
</TR>
</FORM>
</TABLE>
//valid.js
function ck()
{
var sign=1;
var s;
var l;
for(i=0; i<document.form1.all.length; i++) {
s=document.form1.all(i).tagName;
l=document.form1.all(i).name;
switch(s)
{case 'INPUT':
if(document.form1.all(i).value=='')
{
if (document.form1.all(i).re==1)//re表示必须
{
sign=-1;
break;
}
}
else
{
if (l.indexOf('dat')==0)//在名字前有dat表示日期
{
var re=/^\d{4}-\d{1,2}-\d{1,2}$/;
var str=document.form1.all(i).value;
var r=str.match(re);
if (r==null)
{
sign=-2;
break;
}
else{
var s=str.split(""-"");
if (s[0].substring(0,2)<19 || s[1]>12 || s[1]<1 || s[2]>31 || s[2]<1)
{
sign=-3;
break;
}
}
}
if (l.indexOf('float')==0)//在名字前有float表示浮点数
{
var re=/^\d{1,8}$|\.\d{1,2}$/;
var str=document.form1.all(i).value;
var r=str.match(re);
if (r==null)
{
sign=-4;
break;
}
else{
document.form1.all(i).value=parseFloat(str);
}
}
if (l.indexOf('int')==0)//在名字前有int表示整数
{
var re=/^\d{0,8}$/;
var str=document.form1.all(i).value;
var r=str.match(re);
if (r==null)
{
sign=-5;
break;
}
else{
document.form1.all(i).value=parseInt(str);
}
}
if (l.indexOf('email')==0)//在名字前有email表示email
{
var re=/^\w+@\w+\.\w{2,3}/;
var str=document.form1.all(i).value;
var r=str.match(re);
if (r==null)
{
sign=-6;
break;
}
}
}
break;
case 'SELECT':
if (document.form1.all(i).options[document.form1.all(i).selectedIndex].value=="""")
{
sign=-7;
}
break;
case 'TEXTAREA':
if (document.form1.all(i).value.length>32000)
{
sign=-8;
}
break;
default :
break;
}
}
switch(sign)
{
case -1:
alert('请填写所有的必填项');
return;
break;
case -2:
alert(""请按以下格式填写日期: yyyy-mm-dd!"");
return;
break;
case -3:
alert('请填写正确的日期');
return;
break;
case -4:
alert(""请填写正确的金额 eg:12312424.23!"");
return;
break;
case -5:
alert(""请填写正确的数字 eg:12312!"");
return;
break;
case -6:
alert(""请填写合法的email eg:[email protected]!"");
return;
break;
case -7:
alert(""请在下拉列表中选择!"");
return;
break;
case -8:
alert(""内容不得超过64K!"");
return;
break;
case 1:
document.form1.submit();
break;
}
}