您的位置:首页 > Web前端 > JavaScript

转载:28个JS验证函数使用

2010-07-03 16:10 519 查看
JS验证函数的调用方法和注意: 1.给表单设置onsubmit="return test()",配合<input type="submit" name="Submit" value="check"> 进行提交. 2.<input type=text onkeydown="test();"> //当鼠标按下直接调用函数验证 3.<input type=text onblur="testl(this.value)"> //传入自己的值进行验证,test(this)//传入对象本身进行验证 4.<input type="button" value="test" onclick="test()"> //单击Btn进行验证,如果通过则用document.forms[0].submit(); 进行表单提交 5.<input onClick="return test();" type="submit" name="submit" value=" 提交信息 ">//使用submit进行提交验证,如果test中return false;则不提交返true提交. 6.<script type="javascript">....function test(){...return false;...}...</script> 7.||与,&&或,!非 8.常用事件:onblur失去焦点,onchange失去焦点并且内容发生改变,onfocus元素获得焦点,onreset当表单中RESET的属性被激发时,onsubmit表单被提交时触发此事件 9.验证正则表达式:if(/^[1-9]\d*$/.test(str))返回真则通过,FALSE通不通过 10.document.getElementById("ip").value//访问ID的值,document.form1.text1.value//通过name访问 11.<input onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('不能为空!')"> //执行单条正则验证例 验证函数: <input type="text" name="text1" id="text1" onblur="test();" value="" /> 1.字符长度限制 function test() { if(document.form1.text1.value.length>50) { alert("不能超过50个字符!"); document.form1.text1.focus(); return false; } } 2.只能是英文,字母或数字 function test() { if(!(event.keyCode>=65&&event.keyCode<=90)) { alert("只能是英文!"); document.form1.text1.focus(); } } <input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有错')"> //字母或数字 3.只能是数字 function test() { if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105))) //考虑小键盘上的数字键 { alert("只能是数字!"); document.form1.text1.focus(); } } 或者 function test(NUM) { var i,j,strTemp; strTemp="0123456789"; if ( NUM.length== 0) return 0 for (i=0;i<NUM.length;i++) { j=strTemp.indexOf(NUM.charAt(i)); if (j==-1) { alert("只能是数字!"); return false; } } //说明是数字 return true; } 5.验证邮箱(正则,函数) function isEmail(strEmail) { if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) return true; else alert("格式错误!"); } function isEmail() { if (document.userinfo.useremail.value.charAt(0)=="." || document.userinfo.useremail.value.charAt(0)=="@"|| document.userinfo.useremail.value.indexOf('@', 0) == -1 || document.userinfo.useremail.value.indexOf('.', 0) == -1 || document.userinfo.useremail.value.lastIndexOf("@")==document.userinfo.useremail.value.length-1 || document.userinfo.useremail.value.lastIndexOf(".")==document.userinfo.useremail.value.length-1) { alert("Email地址格式不正确!"); document.userinfo.useremail.focus(); return false; } } <input type="text" onblur="isEmail(this.value);" name="text1" /> 6.屏蔽关键字(这里屏蔽*******) function test() { if((document.form1.text1.value.indexOf ("***") == 0)||(document.form1.text1.value.indexOf ("****") == 0)){ alert("存在关键字"); document.form1.text1.focus(); return false; } } 7.比较两次输入是否相同 if(document.userinfo.userpassword.value != document.userinfo.userpassword1.value) { document.userinfo.userpassword.focus(); document.userinfo.userpassword.value = ''; document.userinfo.userpassword1.value = ''; alert("两次输入的密码不同,请重新输入!"); return false; } 8.判断是否为空或空格组成 function test(){ if(checkspace(document.form1.text1.value)) { document.form1.text1.focus(); alert("为空或包含空格组成!"); return false; } } function checkspace(checkstr) { var str = ''; for(i = 0; i < checkstr.length; i++) { str = str + ' '; } return (str == checkstr); } 或者: <input onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('不能为空!')"> //执行单条正则验证例 9. 验证是否是数字电话,只能是数字和- 正则:\d{3}-\d{8}|\d{4}-\d{7} function istel(elem) { var str=elem.value; var oneDecimal=false; var oneChar=0; str=str.toString( ); for (var i=0; i<str.length; i++) { oneChar=str.charAt(i).charCodeAt(0); if(oneChar==45){ continue; } if(oneChar<48 || oneChar > 57) { alert("此项只能输入数字和'-'号."); return false; } } return true; } 或者 function fucCheckTEL(TEL) { var i,j,strTemp; strTemp="0123456789-()# "; for (i=0;i<TEL.length;i++) { j=strTemp.indexOf(TEL.charAt(i)); if (j==-1) { alert("此项只能输入数字和'-'号."); return false; } } //说明合法 return true; } 或者 //校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-” function isTel(s) { //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/; var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } 或者 要求: (1)电话号码由数字、"("、")"和"-"构成 (2)电话号码为3到8位 (3)如果电话号码中包含有区号,那么区号为三位或四位 (4)区号用"("、")"或"-"和其他部分隔开 (5)移动电话号码为11或12位,如果为12位,那么第一位为0 (6)11位移动电话号码的第一位和第二位为"13" (7)12位移动电话号码的第二位和第三位为"13"   根据这几条规则,可以与出以下正则表达式: (^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$) function PhoneCheck(s) { var str=s; var reg=/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/ alert(reg.test(str)); } <input type="text" name="text1" onblur="istel(this);" /> 10.//opt21时检查num是否是负数//opt11时检查num是否是小数//返回1是正确的,0是错误的 function chknbr(num,opt1,opt2) { var i=num.length; var staus; //staus用于记录.的个数 status=0; if ((opt2!=1) && (num.charAt(0)=='-')) { alert("You have enter a invalid number."); return 0; } //当最后一位为.时出错 if (num.charAt(i-1)=='.') { alert("You have enter a invalid number."); return 0; } for (j=0;j<i;j++) { if (num.charAt(j)=='.') { status++; } if (status>1) { alert("You have enter a invalid number."); return 0; } if (num.charAt(j)<'0' || num.charAt(j)>'9' ) { if (((opt1==0) || (num.charAt(j)!='.')) && (j!=0)) { alert("You have enter a invalid number."); return 0; } } } return 1; } 11.检查是否数字或字母组成的串 function test(str) { var strSource ="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; var ch; var i; var temp; for (i=0;i<=(str.length-1);i++) { ch = str.charAt(i); temp = strSource.indexOf(ch); if (temp==-1) { alert("格式不正确!"); return false; } } if (strSource.indexOf(ch)==-1) { alert("格式不正确!"); return false; } else { return true; } } 12.数字验证 正整数验证^[1-9]\d*$,负整数验证^-[1-9]\d*$ ,整数^-?[1-9]\d*$,非负整数^[1-9]\d*|0$,非正正数^-[1-9]\d*|0$,浮点数^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ function test(str){ if(/^[1-9]\d*$/.test(str)) { alert("格式不能!"); return false; } else { return true; } } 13.身份证 正则:\d{15}|\d{18} 14.IP地址 正则:\d+\.\d+\.\d+\.\d+ 15.邮政编码 正则:[1-9]\d{5}(?!\d) function isPostalCode(s) { //var patrn=/^[a-zA-Z0-9]{3,12}$/; var patrn=/^[a-zA-Z0-9 ]{3,12}$/; if (!patrn.exec(s)) return false return true } 16.QQ 正则:[1-9][0-9]{4,} 17.HTML标记 正则:\d{3}-\d{8}|\d{4}-\d{7} 18.是否有效的颜色值 function IsColor(color){ var temp=color; if (temp=="") return true; if (temp.length!=7) return false; return (temp.search(/\\#[a-fA-F0-9]{6}/) != -1); } 19.是否有效的链接 function IsURL(url){ var sTemp; var b=true; sTemp=url.substring(0,7); sTemp=sTemp.toUpperCase(); if ((sTemp!="HTTP://")||(url.length<10)){ b=false; } return b; } 20.是否有效的手机号码 function IsMobile(_str){ var tmp_str = trim(_str); var pattern = /13\\d{9}/; return pattern.test(tmp_str); } 或者 //校验手机号码:必须以数字开头,除数字外,可含有“-” function IsMobile(s) { var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } 21.IP地址和身份证号验证(正则) function checkIP() { obj=document.getElementById("ip").value //ip地址 //var exp=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/; //身份证 //var exp=/\b(((?!\d\d\d)\d+|1\d\d|2[0-4]\d|25[0-5])(\b|\.)){4}/ //var exp=/^(\d{15}|\d{17}[x0-9])/ //var exp=/^([\d]{15}|[\d]{18}|[\d]{17}[x|X])$/ var reg = obj.match(exp); if(reg==null) { alert("IP地址不合法!"); } else { alert("IP地址合法!"); } } 22.校验登录名:只能输入5-20个以字母开头、可带数字、“_”“.”的字串 function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; if (!patrn.exec(s)) return false return true } 23.校验用户姓名:只能输入1-30个以字母开头的字串 function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) return false return true } 24.校验密码:只能输入6-20个字母、数字、下划线 function isPasswd(s) { var patrn=/^(\w){6,20}$/; if (!patrn.exec(s)) return false return true } 25.日期时间类 短时间,形如 (13:04:06) function isTime(str) { var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/); if (a == null) {alert('输入的参数不是时间格式'); return false;} if (a[1]>24 || a[3]>60 || a[4]>60) { alert("时间格式不对"); return false } return true; } 短日期,形如 (2003-12-05) function strDateTime(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]); return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]); } 长时间,形如 (2003-12-05 13:04:06) function strDateTime(str) { var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; var r = str.match(reg); if(r==null)return false; var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]); } 26.判断字符全部由a-Z或者是A-Z的字字母组成 <input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有错')"> 27.判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母 <input onblur="if(/^([a-zA-z_]{1})([\w]*)$/g.test(this.value))alert('有错')"> 28.表单的值不能为空,不能超过imax字符,不能少于imix字符,输入为中文判断 function isNull(elem){ //var pattern=/^\s+|\s+$/; if(elem.replace(/(^\s+|\s$)/g, "")==""){ return false; }else{ return true; } } function imax(elem){ if(elem.length>imax){ return false; }else{ return true; } } function imix(elem){ if(elem.lengthreturn false; }else{ return true; } } function isChinese(elem){ var pattern=/[^\x00-\xff]/g; if(pattern.test(elem)){ //包含中文 return false; }else{ //不包含中文 return true; } } 原文:http://www.cnblogs.com/xlovey/archive/2010/03/01/1676045.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: