本文实例总结了JS表单验证方法。分享给大家供大家参考,具体如下:
回回写表单,回回要写不同的检查JS,很麻烦,后来写了通用的检查函数,很粗的糙,但比较实用,以后再好好改改:
包含页:Check-Form.js
代码如下:
//规则检查排序 函数RegCheck (obj) { var str=objs.checktype; 开关(str) { 例“cn”://要检查的表单控件的输入类型必须为中文 返回CnWordRegCheck (obj); 打破; 例“idnum”: 返回IdCardRegCheck (obj);//要检查的表单控件的输入类型必须为身份证号 打破; 例“num”://要检查的表单控件的输入类型必须为数字 返回NumRegCheck (obj); 打破; “邮件”://要检查的表单控件的输入类型必须为电子邮件 返回EmailRegCheck (obj); 打破; 例“三种”://要检查的表单控件的输入类型必须为字符串 返回SpecialWordRegCheck (obj); 打破; 例“笔记”: 返回true;//要检查的表单控件的输入类型必须为什么都可以 打破; } }//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *//检查电话号码 函数NumRegCheck (obj) { var uplimit=obj.checkrule.split (", ") [0]; var downlimit=obj.checkrule.split (", ") [1]; var reg=" "; 如果(downlimit==null) { reg=eval_r ("/^ [0 - 9] {+ uplimit +”} $/"); } 其他的 { reg=eval_r ("/^ [0 - 9] {“+ uplimit +”、“+ downlimit +”} $/"); } var str=obj.value; var=reg.test旗帜(str); 返回国旗; }//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *//检查身份证号 函数IdCardRegCheck (obj) { var str=obj.value; var reg=/^ ([0 - 9] {15} | [0 - 9] {18}) $/; var=reg.test旗帜(str); 返回国旗; }//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *//检查邮件 函数EmailRegCheck (obj) { var str=obj.value; [var reg=/^ (- za - z0 - 9 _ -]) + @ ([a-zA-Z0-9_ -]) + ((\ [a-zA-Z0-9_ -] {2,3}) {1,2}) $/; var=reg.test旗帜(str); 返回国旗; }//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *//检查中文输入 函数CnWordRegCheck (obj) { var str=obj.value; var reg=/^ [\ u4e00 - \ u9fa5] (\ s * [\ u4e00 - \ u9fa5]) * $/; var=reg.test旗帜(str);//警报(国旗); 返回国旗; }//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *//检查特殊字符 函数SpecialWordRegCheck (obj) { var reg=/((\/) (& lt;)(在)]/g“祝辞\ \)()()(& lt;)(在)]/g; var str=obj.value; var=reg.test旗帜(str); 国旗=!国旗; 返回国旗; }//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *//检查主引导函数 函数CheckForm (obj) { var myform=eval_r(“文档”。+ obj.name); (i=0; i< myform.elements.length;我+ +) { var formvalue=https://www.yisu.com/zixun/myform.elements[我]。value;//内容非空检查,长度检查 如果(myform.elements[我]。值==" ")| | (myform.elements[我].value.length> myform.elements[我].maxlength)) { alert("您忘了填写“+ myform.elements[我].cnname +“!”+“或者您填写的信息不符合规范!”); myform.elements[我].focus (); 返回错误; 打破; } 如果(myform.elements[我]。值=https://www.yisu.com/zixun/=0) { alert("您忘了选择“+ myform.elements[我].cnname +“!”); myform.elements[我].focus (); 返回错误; 打破; }//数据规范化检查 var myobj=myform.elements[我];//警报(myobj.checktype);//中断; 如果(! RegCheck (myobj)) { 警报(myobj.cnname +“输入有误,请按填写要求填写!”); myobj.focus (); 返回错误; 打破; } } } >之前附:js身份证号码严格验证
& lt; script> 函数checkIdcard(经办人身份证){ var=new Array(错误 “验证通过!” “身份证号码位数不对!”, “身份证号码出生日期超出范围或含有非法字符!”, “身份证号码校验错误!”, “身份证地区非法!” ); var面积={11:“北京”,12:“天津”,13:“河北”,14:“山西”,15:“内蒙古”,21:“辽宁”,22日:“吉林”,23:“黑龙江”,31日:“上海”,32:“江苏”,33:“浙江”,34:“安徽”,35:“福建”,36:“江西”,37:“山东”,41:“河南”,42:“湖北”,43:“湖南”,44:“广东”,45:“广西”,46:“海南”,50岁:“重庆”,51:“四川”,52:“贵州”,53:“云南”,54:“西藏”,61:“陕西”,62:“甘肃”,63:“青海”,64:“宁夏”,65:“新疆”,71:“台湾”,81:“香港”,82:“澳门”,91年“国外”} var经办人身份证,Y, JYM; var S, M; var idcard_array=new Array (); idcard_array=idcard.split (" ");//地区检验 如果(区域[方法(idcard.substr (0, 2)))==null)返回错误[4];//身份号码位数及格式检验 开关(idcard.length) { 例15: 如果((方法(idcard.substr(2)) + 1900) % 4==0 | |((方法(idcard.substr (6 2)) + 1900) % 100==0,,2)(方法(idcard.substr(6日)+ 1900)% 4==0)){ ereg=/^[1 - 9][0 - 9]{5}[0 - 9]{2}(08年(07年03号| 05 | | | | | 10 12)(0(1 - 9)|[1 - 2][0 - 9]| 3(0 - 1))|(04 | 06 | 09年| 11)(0(1 - 9)|[1 - 2][0 - 9]| 30)| 02(0(1 - 9)|[1 - 2][0 - 9]))[0 - 9]{3}$/;//测试出生日期的合法性 其他}{ ereg=/^[1 - 9][0 - 9]{5}[0 - 9]{2}(08年(07年03号| 05 | | | | | 10 12)(0(1 - 9)|[1 - 2][0 - 9]| 3(0 - 1))|(04 | 06 | 09年| 11)(0(1 - 9)|[1 - 2][0 - 9]| 30)| 02(0[1 - 9][0 - 9]| 1 | 2(主)))[0 - 9]{3}$/;//测试出生日期的合法性 } 如果(ereg.test(经办人身份证))返回错误[0]; 否则返回错误[2]; 打破; 例18://18位身份号码检测//出生日期的合法性检查//闰年月日:((03号| | 5 | 07 08年| | | 12)10(0(1 - 9)|[1 - 2][0 - 9]| 3(0 - 1))|(04 | 06 | 09年| 11)(0 (1 - 9)| [1 - 2][0 - 9]| 30)| 02 (0 (1 - 9)| [1 - 2][0 - 9]))//平年月日:((03号| | 5 | 07 08年| | | 12)10(0(1 - 9)|[1 - 2][0 - 9]| 3(0 - 1))|(04 | 06 | 09年| 11)(0(1 - 9)|[1 - 2][0 - 9]| 30)| 02(0[1 - 9][0 - 9]| 1 | 2(主))) 4)如果(方法(idcard.substr(6日)% 4==0 | |(方法(idcard.substr (6, 4) % 100==0,,4)方法(idcard.substr (6) % 4==0)) { ereg=/^[1 - 9][0 - 9]{5} 19[0 - 9]{2}(08年(07年03号| 05 | | | | | 10 12)(0(1 - 9)|[1 - 2][0 - 9]| 3(0 - 1))|(04 | 06 | 09年| 11)(0 (1 - 9)| [1 - 2][0 - 9]| 30)| 02 (0 (1 - 9)| [1 - 2][0 - 9]))[0 - 9]{3}(0-9Xx)/美元;//闰年出生日期的合法性正则表达式 其他}{ ereg=/^[1 - 9][0 - 9]{5} 19[0 - 9]{2}(08年(07年03号| 05 | | | | | 10 12)(0(1 - 9)|[1 - 2][0 - 9]| 3(0 - 1))|(04 | 06 | 09年| 11)(0(1 - 9)|[1 - 2][0 - 9]| 30)| 02(0[1 - 9][0 - 9]| 1 | 2(主)))[0 - 9]{3}(0-9Xx)/美元;//平年出生日期的合法性正则表达式 } 如果(ereg.test(经办人身份证)){//测试出生日期的合法性//计算校验位 S=(方法(idcard_array[0]) +方法(idcard_array [10])) * 7 +(方法(idcard_array[1]) +方法(idcard_array [11])) * 9 +(方法(idcard_array[2]) +方法(idcard_array [12])) * 10 +(方法(idcard_array[3]) +方法(idcard_array [13])) * 5 +(方法(idcard_array[4]) +方法(idcard_array [14])) * 8 null null null null null null null null null null null null null null null null null null null null null null null null null null null null nullJS表单验证方法实例小结【电话,身份证号,邮件,中文,特殊字符,身份证号等】