我用一个asp表单验证的东西.
//示例:
//整数:<input type="text" name="test" vt="int" on="总载重吨" r="true" max="10000" min="100"><br><br>
//浮点数<input type="text" name="test" vt="float" on="运价" r="true" max="10000.50" decimalLen="2"><br><br>
//普通字符:<input type="text" name="test" vt="string" on="字符" r="true" mal="6" mil=3><br><br>
//英文名:<input type="text" name="test" vt="estring" on="英文船名" r="true" mal="6" mil=3><br><br>
//中文名:<input type="text" name="test" vt="cstring" on="英文船名" r="true" mal="6" mil=3><br><br>
//日期:<input type="text" name="test" vt="date" on="开始日期" r="true"><br><br>
//邮箱:<input type="text" name="test" vt="email" on="邮箱" r="true"><br><br>
//单选:<input type="radio" name="test" vt="radio" on="显示方式" r="true">
//复选项:<input type="checkbox" name="test" vt="checkbox" on="爱好" mis="2" mas="5" value='1' r='true'><input type="checkbox" name="test" value='5'><br><br>
//列表选顶:<select name="test1" vt="select" on="租船方式" r="true" size="1"><option>请选择</option></select><br><br>
//多选项:<select name="test2" vt="list" on="爱好" size =5 mis="2" mas="5" multiple><option>6</option></select><br><br>
//确认密码:<input vt="compare" to="t1" on='确认密码'>
//数字编号:vt=nuidck
function checkForm(formName)
{
eval("var oForm=document."+formName);
var eles = oForm.elements;
for(var i=0;i<eles.length;i++)
{
//是否需要验证
var sType=eles[i].vt;
var str=new String(eles[i].value);
if (!chksafe(str))
{
alert("您输入的 "+convertNullToSpace(eles[i].on)+" 包含非法字符");
eles[i].focus();
return false;
}
if(sType)
{
if(eles[i].r!=null && eles[i].r=="true" )
{
if(trim(eles[i].value)=="" && sType!="select")
{
if(eles[i].on!=null)
{alert(eles[i].on+" 不可以为空");}
else
{alert("该文本框为必输字段");}eles[i].focus();event.returnValue=false;return false;}
}
if (!(eles[i].r!="true" && trim(eles[i].value)==""))
switch(sType)
{
//整数
case "int":
if(!validInt(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//小数
case "float":
if(!validFloat(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//字符串
case "string":
if(!validString(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//数字编号
case "nuidck":
if(!nuidck(eles[i]))
{
event.returnValue=false;
return false;
}
break;
case "checkid":
if(!checkid(eles[i]))
{
event.returnValue=false;
return false;
}
break;
case "estring":
if(!valideString(eles[i]))
{
event.returnValue=false;
return false;
}
break;
case "cstring":
if(!validcString(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//日期
case "date":
if(!validDate(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//邮件
case "email":
if(!validEmail(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//单选按钮
case "radio":
if(!validRadio(eles[i].name))
{
event.returnValue=false;
return false;
}
break;
//复选按钮
case "checkbox":
// alert(eles[i].name);
if(!validBox(eles[i].name))
{
event.returnValue=false;
return false;
}
break;
//下拉列表框
case "select":
if(!validSelect(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//列表框
case "list":
if(!validList(eles[i]))
{
event.returnValue=false;
return false;
}
break;
//比较
case "compare":
if (!validCompare(eles[i]))
{
event.returnValue=false;
return false;
}
break;
}//end swith
}
}
event.returnValue=true;
return true;
}
/***验证是否为整数***/
function validInt(ele)
{
if(!isInt(ele.value))
{
alert("请输入有效整数");
ele.focus();
return false;
}
else
{
if(ele.max!=null && !isNaN(ele.max))
if(parseInt(ele.max)<parseInt(ele.value))
{
alert("您输入的 "+ convertNullToSpace(ele.on)+" 值应该小于"+ele.max);
ele.focus();
return false;
}
if(ele.min!=null && !isNaN(ele.min))
if(parseInt(ele.min)>parseInt(ele.value))
{
alert("您输入的 "+ convertNullToSpace(ele.on)+" 值应该大于"+ele.min);
ele.focus();
return false;
}
}
return true;
}
/***判断是否为整数***/
function isInt(s)
{
var patrn=/^0|^[1-9]\d*/;
if (!patrn.exec(s))
{
return false;
}
else
{
return true;
}
}
/***验证是否为小数***/
function validFloat(ele)
{
if(isNaN(ele.value))
{
alert("请输入有效数字");
ele.focus();
return false;
}
else
{
if(ele.decimalLen!=null && !checkDecimal(ele.value,ele.decimalLen))
{
alert("您输入的 "+convertNullToSpace(ele.on)+" 值小数位最多为"+ele.decimalLen+"个小数位");
ele.focus();
return false;
}
if(ele.max!=null && !isNaN(ele.max))
if(parseInt(ele.max)<parseInt(ele.value))
{
alert("您输入的 "+ convertNullToSpace(ele.on)+" 值应该小于"+ele.max);
ele.focus();
return false;
}
if(ele.min!=null && !isNaN(ele.min))
if(parseInt(ele.min)>parseInt(ele.value))
{
alert("您输入的 "+ convertNullToSpace(ele.on)+" 值应该大于"+ele.min);
ele.focus();
return false;
}
}
return true;
}
/***验证是否为字符串***/
function validString(ele)
{
//最小长度
if(ele.mil!=null && !isNaN(ele.mil))
{
var value=new String(ele.value);
if(value.replace(/[^\x00-\xff]/g,"**").length<parseInt(ele.mil))
{
alert("您输入的 "+convertNullToSpace(ele.on)+" 字数最小长度为"+ele.mil);
ele.focus();
return false;
}
}
//最大长度
if(ele.mal!=null && !isNaN(ele.mal))
{
var value=new String(ele.value);
if(value.replace(/[^\x00-\xff]/g,"**").length>parseInt(ele.mal))
{
alert("您输入的 "+convertNullToSpace(ele.on)+" 字数最大长度为"+ele.mal);
ele.focus();
return false;
}
}
return true;
}
/***验证是否为英文字符串***/
function valideString(ele)
{
var str=new String(ele.value);
if (str.replace(/[^\x00-\xff]/g,"**").length!=str.length)
{
alert("您输入的 "+convertNullToSpace(ele.on)+" 中包含双字节字符");
ele.focus();
return false;
}
//最小长度
if(ele.mil!=null && !isNaN(ele.mil))
{
var value=new String(ele.value);
if(value.length<parseInt(ele.mil))
{
alert("您输入的 "+convertNullToSpace(ele.on)+" 字数最小长度为"+ele.mil);
ele.focus();
return false;
}
}
//最大长度
if(ele.mal!=null && !isNaN(ele.mal))
{
var value=new String(ele.value);
if(value.length>parseInt(ele.mal))
{
alert("您输入的 "+convertNullToSpace(ele.on)+" 字数最大长度为"+ele.mal);
ele.focus();
return false;
}
}
return true;
}
/***验证身份证号码***/
function checkid(ele)
{
var sID = new String(ele.value);
if(!(/^\d{15}$|^\d{18}$|^\d{17}x$/.test(sID)))
{
alert("您输入正确的 "+convertNullToSpace(ele.on));
ele.focus();
return false;
}
return true;
}
/***验证数字编号***********/
function nuidck(ele)
{
var str=new String(ele.value);
var cmp="0123456789-";
//是乎为字符
for (var i=0;i<str.length;i++)
{
if (cmp.indexOf(str.substring(i,i+1))<0)
{
alert("您输入的 "+convertNullToSpace(ele.on)+" 非法字符");
ele.focus();
return false;
}
}
//最小长度
if(ele.mil!=null && !isNaN(ele.mil) && str.length<parseInt(ele.mil))
{
alert("您输入的 "+convertNullToSpace(ele.on)+" 字数最小长度为"+ele.mil);
ele.focus();
return false;
}
//最大长度
if(ele.mal!=null && !isNaN(ele.mal) && str.length>parseInt(ele.mal))
{
alert("您输入的 "+convertNullToSpace(ele.on)+" 字数最大长度为"+ele.mal);
ele.focus();
return false;
}
return true;
}
/***验证是否为中文字符串***/
function validcString(ele)
{
var str=new String(ele.value);
if (str.replace(/[^\x00-\xff]/g,"**").length!=str.length*2)
{
alert("您输入的 "+convertNullToSpace(ele.on)+" 中包含单字节字符");
ele.focus();
return false;
}
//最小长度
if(ele.mil!=null && !isNaN(ele.mil))
{
var value=new String(ele.value);
if(value.length<parseInt(ele.mil))
{
alert("您输入的 "+convertNullToSpace(ele.on)+" 字数最小长度为"+ele.mil);
ele.focus();
return false;
}
}
//最大长度
if(ele.mal!=null && !isNaN(ele.mal))
{
var value=new String(ele.value);
if(value.length>parseInt(ele.mal))
{
alert("您输入的 "+convertNullToSpace(ele.on)+" 字数最大长度为"+ele.mal);
ele.focus();
return false;
}
}
return true;
}
/***验证是否为日期格式***/
function validDate(ele)
{
if(!isDate(ele.value)&&ele.value!="")
{
alert("请输入有效日期(yyyy-mm-dd)");
ele.focus();
return false;
}
return true;
}
/***判断是否为日期***/
function isDate(str)
{
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})/);
if(r==null)
{
return false;
}
var d= new Date(r[1], r[3]-1, r[4]);
if(!(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]))
{
return false;
}
return true;
}
/***验证是否为电子邮箱***/
function validEmail(ele)
{
if(!isEmail(ele.value))
{
alert("请输入有效邮箱");
ele.focus();
return false;
}
return true;
}
/***判断是否为邮箱***/
function isEmail(str)
{
if(str.match(/[\w-.]+@{1}[\w-]+\.{1}\w{2,4}(\.{0,1}\w{2}){0,1}/ig)!=str)
return false;
else
return true;
}
/***验证单选按钮是否需要选择***/
function validRadio(eleName)
{
var ele = document.getElementsByName(eleName);
//eval("var rads="+name+"."+ele.name);
var selectCount=0;
for(var i=0;i<ele.length;i++)
{
if(ele[i].checked)
{
selectCount++;
}
}
if(ele[0].r!=null)
{
if(selectCount==0)
{
alert("请选择"+convertNullToSpace(ele[0].on));
ele[0].focus();
return false;
}
}
return true;
}
/***验证复选按钮是否需要选择***/
function validBox(eleName)
{
var ele = document.getElementsByName(eleName); //add by eyes
//alert(ele[2].mis);
//alert("ele length:"+ele.length);
// eval("var chks="+name+"."+ele.name);
var selectCount=0;
for(var i=0;i<ele.length;i++)
{
if(ele[i].checked)
{
selectCount++;
}
}
if(ele[0].mis!=null && !isNaN(ele[0].mis))//注意这里用ele[0],而不是ele.minsel
{
//alert("有mis");
if(selectCount<parseInt(ele[0].mis))
{
alert(convertNullToSpace(ele.on)+"至少选择"+ele[0].mis+"项");
ele[0].focus();
return false;
}
}
if(ele[0].mas!=null && !isNaN(ele[0].mas))
{
if(selectCount>parseInt(ele[0].mas))
{
alert(convertNullToSpace(ele[0].on)+"至多选择"+ele[0].mas+"项");
ele[0].focus();
return false;
}
}
return true;
}
/***验证下拉列表框是否需要选择***/
function validSelect(ele)
{
//var rads = document.getElementsByName(ele.name);
if(ele.r!=null && ele.r)
{
if(ele.selectedIndex==0)
{
alert("请选择"+convertNullToSpace(ele.on));
ele.focus();
return false;
}
}
return true;
}
/***验证列表框的选择项数***/
function validList(ele)
{
//var rads = document.getElementsByName(ele.name);
var selectCount=0;
for(var i=0;i<ele.options.length;i++)
{
if(ele.options[i].selected)
{
selectCount++;
}
}
if(ele.mis!=null && !isNaN(ele.mis))
{
if(selectCount<parseInt(ele.mis))
{
alert(convertNullToSpace(ele.on)+"至少选择"+ele.mis+"项");
ele.focus();
return false;
}
}
if(ele.mas!=null && !isNaN(ele.mas))
{
if(selectCount>parseInt(ele.mas))
{
alert(convertNullToSpace(ele.on)+"至多选择"+ele.mas+"项");
ele.focus();
return false;
}
}
return true;
}
/***将NULL转化为空格,用于显示对象名称***/
function convertNullToSpace(paramValue)
{
if(paramValue==null)
return "";
else
return paramValue;
}
/***检查小数位数***/
function checkDecimal(num,decimalLen)
{
var len = decimalLen*1+1;
if(num.indexOf('.')>0)
{
num=num.substr(num.indexOf('.')+1,num.length-1);
if ((num.length)<len)
{
return true;
}
else
{
return false;
}
}
return true;
}
/***去除空格***/
function trim(str)
{
if (str.length > 0)
{
while ((str.substring(0,1) == " ") && (str.length > 0))
{
str = str.substring(1,str.length);
}
while (str.substring(str.length-1,str.length) == " ")
{
str = str.substring(0,str.length-1); }
}
return str;
}
///////////////////////add by eyes/////////////////////
//比较
function validCompare(ele)
{
var to = document.getElementsByName(ele.to);
if (ele.value!=to[0].value)
{
alert("两次"+to[0].on+"不一样");
ele.focus();
return false;
}
return true;
}
//检测是是否包含安全字符串
function chksafe(a)
{
fibdn = new Array ("'" ,";");
i=fibdn.length;
j=a.length;
for (ii=0;ii<i;ii++)
{ for (jj=0;jj<j;jj++)
{ temp1=a.charAt(jj);
temp2=fibdn[ii];
if (temp1==temp2)
{ return false; }
}
}
return true;
}在调用的时候就把上面的页面包含进来
<script language="javascript" src="checkform.js"></script>
比如你在b页面用这
程序代码<form name='myform' method='post' onSubmit="return checkForm('myform')">
<input name="name" class=i1 id="name" title='[必填]3-10个字符长度,不必须为中文' size="20" vt="estring" on="用户名" r="true" mal="10" mil=3>
</form>
这样就可以了
注意认真看checkform.js里面前面的说明,这样你用起来就很方便。嘿嘿。很久没有拿好东西出来了
是因为这段时间太忙了。很少能来blog来写点东西。
希望大家喜欢。
浙公网安备 33010602011771号