表单验证js封装
表单验证在项目中可以说是必不可少的部分,只要有输入就有表单验证,从最简单的验证为不为空,到复杂的验证特殊字符,验证是不是邮箱,电话等特殊字符。当然最基本的原理大家都知道,就是用正则表达式。
但是多个文本框需要验证,网站建设小编说都要重复的调用写好的一个又一个的验证函数么?项目做了一段时间,开始重新整合自己的代码,发现表单验证这块可以提出来,重
新封装一下。在网上参考了大家不同的封装方法,都觉得不是自己想要的,于是就“自己动手,丰衣足食“自己仿照之前做mvc的时候controller的那
种命名方法封了一个表单验证js:
-
-
-
function Validation(name){
-
var t = $("input[name^=" + name + "]");
-
for (var i = 0; i < t.length; i++) {
-
if (t[i].value == null || t[i].value == "") {
-
t[i].focus();
-
t[i].select();
-
myMsg("不能为空");
-
return false;
-
break;
-
} else {
-
switch (t[i].name) {
-
case name+"English": if (isEnglish(t[i].value) == false) {
-
t[i].focus();
-
t[i].select();
-
alert("请输入英文");
-
return false;
-
}
-
break;
-
case name+"Chinese": if (isChinese(t[i].value) == false) {
-
t[i].focus();
-
t[i].select();
-
alert("请输入中文");
-
return false;
-
}
-
break;
-
case name+"Phone": if (isPhone(t[i].value) == false) {
-
t[i].focus();
-
t[i].select();
-
alert("请输入正确的手机号");
-
return false;
-
}
-
break;
-
case name+"Url": if (isUrl(t[i].value)==false) {
-
t[i].focus();
-
t[i].select();
-
alert("请输入正确的url地址");
-
return false;
-
}
-
default:
-
}
-
}
-
}
-
}
这个验证只需要传一个text的name属性的公共部分“xx“,然后按照xx+type的格式给text的name属性赋值即可。例如我想要验证一个文
本框是否是英文,text的name 属性为txtEnglish ,然后只要给js传一个txt,就可以自动完成验证(维修网)。
代码就是一个越写越多,然后越写越少,越写越精的过程,反复,抽象,让代码更美。
文章来源: style="color:#000000;">。
-
* 常用表单验证封装
-
* BY bruce 2013-05-27
-
*/
-
var shapebase=new ShapeBase();
-
function ShapeBase()
-
{
-
-
-
-
-
ShapeBase.notEmpty=function(obj,strNote)
-
{
-
var tempValue=ShapeBase.trim(obj.value);
-
if(tempValue=="")
-
{
-
alert("【"+strNote+"】不能为空!");
-
return false;
-
}
-
return true;
-
}
-
-
-
-
-
ShapeBase.isDigit=function(obj,minLen,maxLen,strNote)
-
{
-
var patrn=/^\d|([1-9][0-9]{1,})$/;
-
if (!patrn.exec(obj.value))
-
{
-
alert("【"+strNote+"】必须由数字组成!");
-
return false;
-
}
-
-
return ShapeBase.lengthLimit(obj, minLen, maxLen,strNote);
-
return true;
-
}
-
-
-
-
ShapeBase.checkUserName=function(obj)
-
{
-
var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
-
if (!patrn.exec(obj.value))
-
{
-
alert("登录名不合法!登录名只能由5-20个字母、数字、下划线组成,并以字母开头!");
-
return false ;
-
}
-
return true ;
-
}
-
-
-
-
ShapeBase.checkPwd=function(obj)
-
{
-
var patrn=/^(\w){6,20}$/;
-
if (!patrn.exec(obj.value))
-
{
-
alert("密码格式不合法!只能输入字母、数字、下划线!");
-
return false;
-
}
-
return true ;
-
}
-
-
-
-
ShapeBase.checkRepeatPwd=function(obj1,obj2)
-
{
-
if (obj1.value!=obj2.value)
-
{
-
alert("密码不一致!请重新输入");
-
obj1.value="";
-
obj2.value="";
-
return false;
-
}
-
return true ;
-
}
-
-
-
-
-
ShapeBase.checkTel=function(obj,canImpty)
-
{
-
if(canImpty==1)
-
{
-
if(obj.value=="")
-
{
-
return true;
-
}
-
}
-
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
-
if (!patrn.exec(obj.value))
-
{
-
alert("电话/传真号码格式不正确!");
-
return false ;
-
}
-
return true ;
-
}
-
-
-
-
-
ShapeBase.checkMobile=function(obj,canImpty)
-
{
-
if(canImpty==1)
-
{
-
if(obj.value=="")
-
{
-
return true;
-
}
-
}
-
if (!(/^1[\d]{10}$/g.test(obj.value))) {
-
alert("手机号码格式不正确,请确认!");
-
return false;
-
}
-
}
-
-
-
-
ShapeBase.isChinese=function(obj,strNote)
-
{
-
var reg = /^[\u4e00-\u9fa5]+$/gi;
-
if(!reg.test(obj.value))
-
{
-
alert("【"+strNote+"】必须为汉字!");
-
-
return false;
-
}
-
return true;
-
}
-
-
-
-
-
ShapeBase.lengthLimit=function(obj,minLen,maxLen,strNote)
-
{
-
if(minLen>0&&maxLen>0)
-
{
-
if(obj.value.length<minLen||obj.value.length>maxLen)
-
{
-
alert("【"+strNote+"】长度必须是"+minLen+"至"+maxLen+"个字符!");
-
}
-
}
-
else if(maxLen>0)
-
{
-
if(obj.value.length>maxLen)
-
{
-
alert("【"+strNote+"】不能超过"+maxLen+"个字符!");
-
-
return false;
-
}
-
}
-
else if(minLen>0)
-
{
-
if(obj.value.length<minLen)
-
{
-
alert("【"+strNote+"】不能少于"+minLen+"个字符!");
-
-
return false;
-
}
-
}
-
return true;
-
}
-
-
-
-
-
ShapeBase.isEmail=function(obj,canImpty) {
-
if(canImpty==1)
-
{
-
if(obj.value=="")
-
{
-
return true;
-
}
-
}
-
if (obj.value.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
-
{
-
return true;
-
}
-
else
-
{
-
alert("邮箱格式不正确!");
-
-
return false;
-
}
-
}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
ShapeBase.checkIdCard = function(obj,canImpty) {
-
idCard = ShapeBase.trim(obj.value.replace(/ /g, ""));
-
if(canImpty==1)
-
{
-
if(obj.value=="")
-
{
-
return true;
-
}
-
}
-
if (idCard.length == 15)
-
{
-
return ShapeBase.isValidityBrithBy15IdCard(idCard);
-
}
-
else if (idCard.length == 18)
-
{
-
var a_idCard = idCard.split("");
-
if(ShapeBase.isValidityBrithBy18IdCard(idCard)&&ShapeBase.isTrueValidateCodeBy18IdCard(a_idCard))
-
{
-
return true;
-
}
-
else
-
{
-
return false;
-
}
-
}
-
else
-
{
-
alert("身份证号长度必须是15位或18位!");
-
return false;
-
}
-
}
-
-
-
-
-
-
ShapeBase.isTrueValidateCodeBy18IdCard=function(a_idCard)
-
{
-
var sum = 0;
-
var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ];
-
var ValideCode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ];
-
if (a_idCard[17].toLowerCase() == 'x')
-
{
-
a_idCard[17] = 10;
-
}
-
for ( var i = 0; i < 17; i++)
-
{
-
sum += Wi[i] * a_idCard[i];
-
}
-
valCodePosition = sum % 11;
-
if (a_idCard[17] == ValideCode[valCodePosition])
-
{
-
return true;
-
}
-
else
-
{
-
alert("身份证号码格式不正确!请确认");
-
return false;
-
}
-
}
-
-
-
-
-
-
ShapeBase.isValidityBrithBy18IdCard=function(idCard18)
-
{
-
var year = idCard18.substring(6,10);
-
var month = idCard18.substring(10,12);
-
var day = idCard18.substring(12,14);
-
var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));
-
-
if(temp_date.getFullYear()!=parseFloat(year)||temp_date.getMonth()!=parseFloat(month)-1||temp_date.getDate()!=parseFloat(day))
-
{
-
alert("身份证号格式不正确!出生日期有误!");
-
return false;
-
}
-
else
-
{
-
return true;
-
}
-
}
-
-
-
-
-
-
ShapeBase.isValidityBrithBy15IdCard=function(idCard15)
-
{
-
var year = idCard15.substring(6,8);
-
var month = idCard15.substring(8,10);
-
var day = idCard15.substring(10,12);
-
var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));
-
-
if(temp_date.getYear()!=parseFloat(year)||temp_date.getMonth()!=parseFloat(month)-1||temp_date.getDate()!=parseFloat(day))
-
{
-
alert("身份证号格式不正确!出生日期有误!");
-
return false;
-
}
-
else
-
{
-
return true;
-
}
-
}
-
-
-
-
-
-
ShapeBase.getSexByIdCard=function(idCard)
-
{
-
idCard = ShapeBase.trim(idCard.replace(/ /g, ""));
-
if(idCard.length==15)
-
{
-
if(idCard.substring(14,15)%2==0)
-
{
-
return 'female';
-
}
-
else
-
{
-
return 'male';
-
}
-
}
-
else if(idCard.length ==18)
-
{
-
if(idCard.substring(14,17)%2==0)
-
{
-
return 'female';
-
}
-
else
-
{
-
return 'male';
-
}
-
}
-
else
-
{
-
return null;
-
}
-
}
-
-
-
-
-
-
ShapeBase.getBirthdayByIdCard=function(idCard) {
-
var tmpStr = "";
-
var idDate = "";
-
var tmpInt = 0;
-
var strReturn = "";
-
-
idCard = ShapeBase.trim(idCard);
-
if (idCard.length == 15)
-
{
-
tmpStr = idCard.substring(6, 12);
-
tmpStr = "19" + tmpStr;
-
tmpStr = tmpStr.substring(0, 4) + "-" + tmpStr.substring(4, 6) + "-" + tmpStr.substring(6);
-
}
-
else
-
{
-
tmpStr = idCard.substring(6, 14);
-
tmpStr = tmpStr.substring(0, 4) + "-" + tmpStr.substring(4, 6) + "-" + tmpStr.substring(6);
-
}
-
return tmpStr;
-
}
-
-
-
-
-
ShapeBase.checkDate=function(obj)
-
{
-
var strDate = obj.value;
-
var result = strDate.match(/((^((1[8-9]\d{2})|([2-9]\d{3}))(-)(10|12|0?[13578])(-)(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(11|0?[469])(-)(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(0?2)(-)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)(-)(0?2)(-)(29)$)|(^([3579][26]00)(-)(0?2)(-)(29)$)|(^([1][89][0][48])(-)(0?2)(-)(29)$)|(^([2-9][0-9][0][48])(-)(0?2)(-)(29)$)|(^([1][89][2468][048])(-)(0?2)(-)(29)$)|(^([2-9][0-9][2468][048])(-)(0?2)(-)(29)$)|(^([1][89][13579][26])(-)(0?2)(-)(29)$)|(^([2-9][0-9][13579][26])(-)(0?2)(-)(29)$))/);
-
if(result==null)
-
{
-
alert("请输入正确的日期格式!,例如:2009-01-01。\r\n 或从时间列表中选择日期。");
-
return false;
-
}
-
return true;
-
}
-
-
-
-
-
ShapeBase.checkMon=function(obj)
-
{
-
var strDate = obj.value;
-
var result = strDate.match(/^(19|20)\d{2}-((0[1-9])|(1[0-2]))$/);
-
if(result==null)
-
{
-
alert("请输入正确的日期格式!如:2013-05");
-
return false;
-
}
-
return true;
-
}
-
-
-
-
-
ShapeBase.trim=function(str)
-
{
-
return str.replace(/(^\s*)|(\s*$)/g, "");
-
}
-
-
-
-
-
ShapeBase.resetForm=function(formSeq)
-
{
-
var obj = null;
-
for (var i = 0; i <= document.forms[0].elements.length - 1; i++)
-
{
-
obj = frm1.elements[i];
-
if (obj.tagName == "INPUT" && obj.type == "text")
-
{
-
obj.setAttribute("value", "");
-
}
-
if (obj.tagName == "INPUT" && obj.type == "checkbox")
-
{
-
obj.setAttribute("checked", false);
-
}
-
if (obj.tagName == "SELECT")
-
{
-
obj.options[0].selected = true;
-
}
-
}
-
return false;
-
}
-
}
阅读(588) | 评论(0) | 转发(0) |