站长论坛

标题: 通用表单验证程序 [打印本页]

作者: tzlink    时间: 2007-10-6 09:58
标题: 通用表单验证程序
/*
* 通用表单验证程序 0.1
* 作者:Hellfire
* 时间:2006年4月
* 示例:
<form action="" onSubmit="return validateForm(this)">
UserName: <input name="username" depends="require" mask="^\w{6,20}$"><br>
Birthday: <input name="birthday" depends="require,date"><br>
<input type="Submit" value="Submit">
</form>
<script language="javascript">

function validateForm(theForm){
//预定义的正则表达式,可以根据自己需要修改
var reDate = /^(\d{2}|\d{4})-(([1-9])|(1[0-2]))-(([1-9])|([12]\d)|(3[01]))$/ //日期format: yyyy-M-d, yy-M-d
var reEmail = /^\w+([-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; //信箱
var reChinese = /^[\u4E00-\u9FA5]+$/; //中文
var reZipcode = /^[1-9]\d{5}$/; //邮编
var rePhone = /^\d{3}-\d{8}|\d{4}-\d{7}$/; //电话
var reMobile = /^13\d{9}$/; //手机
var reCurrency = /^\d+(\.\d{1,4})?$/; //货币
var reNumber = /^\d+$/; //数字
var reInteger = /^[-\+]?\d+$/; //整数
var reFloat = /^[-\+]?\d+(\.\d+)?$/; //小数

var aForm = theForm;
for(var i=0;i<aForm.all.length;i++){
var aElement = aForm.all;
if(aElement.tagName=="INPUT"||aElement.tagName=="TEXTAREA"){
if(aElement.depends!=null){
if(aElement.depends.search("require")>=0 && aElement.value==""){
alert("Field \"" + aElement.name + "\"" + " is required!");
aElement.focus();
return false;
} else if(aElement.value!="") {
if(aElement.depends.search("date")>=0 && !reDate.test(aElement.value)){
alert("Field \"" + aElement.name + "\"" + " doesn't match Date!");
aElement.focus();
return false;
}
if(aElement.depends.search("email")>=0 && !reEmail.test(aElement.value)){
alert("Field \"" + aElement.name + "\"" + " doesn't match Email!");
aElement.focus();
return false;
}
if(aElement.depends.search("chinese")>=0 && !reChinese.test(aElement.value)){
alert("Field \"" + aElement.name + "\"" + " doesn't match Chinese!");
aElement.focus();
return false;
}
if(aElement.depends.search("zipcode")>=0 && !reZipcode.test(aElement.value)){
alert("Field \"" + aElement.name + "\"" + " doesn't match Zipcode!");
aElement.focus();
return false;
}
if(aElement.depends.search("phone")>=0 && !rePhone.test(aElement.value)){
alert("Field \"" + aElement.name + "\"" + " doesn't match Phone!");
aElement.focus();
return false;
}
if(aElement.depends.search("mobile")>=0 && !reMobile.test(aElement.value)){
alert("Field \"" + aElement.name + "\"" + " doesn't match Mobile!");
aElement.focus();
return false;
}
if(aElement.depends.search("currency")>=0 && !reCurrency.test(aElement.value)){
alert("Field \"" + aElement.name + "\"" + " doesn't match Currency!");
aElement.focus();
return false;
}
if(aElement.depends.search("number")>=0 && !reNumber.test(aElement.value)){
alert("Field \"" + aElement.name + "\"" + " doesn't match Number!");
aElement.focus();
return false;
}
if(aElement.depends.search("integer")>=0 && !reInteger.test(aElement.value)){
alert("Field \"" + aElement.name + "\"" + " doesn't match Integer!");
aElement.focus();
return false;
}
if(aElement.depends.search("float")>=0 && !reFloat.test(aElement.value)){
alert("Field \"" + aElement.name + "\"" + " doesn't match Float!");
aElement.focus();
return false;
}
}
}
if(aElement.mask!=null){
var reMask = new RegExp(aElement.mask);
if(!reMask.test(aElement.value)){
alert("Field \"" + aElement.name + "\"" + " doesn't match mask!");
aElement.focus();
return false;
}
}
}
}
return true;
}
</script>




欢迎光临 站长论坛 (http://www.tzlink.com/bbs/) Powered by Discuz! X3.2