JavaScript常用验证脚本总结
Java  /  管理员 发布于 4年前   394
转载请出自出处:http://eksliang.iteye.com/blog/2098985
下面这些验证脚本,是我在这几年开发中的总结,今天把他放出来,也算是一种分享吧,现在在我的项目中也在用!包括日期验证、比较,非空验证、身份证验证、数值验证、Email验证、电话验证等等...!
下面这些方法都有一个特点,就是有两份,因为是表单验证,所以提供了两种实现方式,第一种传入的是表单的ID,另一种传入的是表单的值!
我在下面附件中还附带了这个脚本的源文件!
/** *@author Ickes *下面很多方法都依赖这个方法 */function _$(id){return document.getElementById(id);}/** * @author Ickes * 传入一个字符串,删除字符串左右两边的空格 * @param str<br> * 要去除空格的字符串 * @param type<br> * -如果不传则去掉两端的空格 <br> * -如果为L或者l则去掉左边的空格<br> * -如果为R或者r则去掉右边的空格<br> * @return */function trim(str,type){ if(type=="" || type==null){ return str.replace(/(^\s*)|(\s*$)/g, ""); }else if(type.toLocaleLowerCase()=="r"){ return str.replace(/(\s*$)/g,""); }else if(type.toLocaleLowerCase()=="l"){ return str.replace(/(^\s*)/g,""); } }/**** *@author Ickes * 根据id验证文本框中输入的是不是为空 * 如果为null则返回true **/function checkNull(_id){var v=_$(_id).value;v=trim(v);if(v==''){return true;}else{return false;}}/** *@author Ickes * 返回系统当前日期 * @return * 返回格式:yyyy-MM-dd*/function getDate(){var d;var s=''; d = new Date(); s += d.getFullYear() + "-"; //月 var moth=d.getMonth() + 1; if(moth<10){ s += "0"+moth+ "-"; }else{ s += moth + "-"; } //日 var date=d.getDate(); if(date<10){ s += "0"+date; } else{ s += date; } return(s); }/** * @author Ickes * 返回系统当前日期时间 * @return * 返回格式:yyyy-MM-dd hh:mm:ss*/function getDateTime(){var d;var s=''; d = new Date(); s += d.getFullYear() + "-"; //月 var moth=d.getMonth() + 1; if(moth < 10){ s += "0" +moth+ "-"; }else{ s += moth + "-"; } //日 var date=d.getDate(); if(date < 10){ s += "0" + date + " "; } else{ s += date+" "; } //小时 var hours=d.getHours(); if(hours < 10){ s += "0" +hours+ ":"; }else{ s +=hours+":"; } //分钟 var minutes = d.getMinutes(); if(minutes < 10){ s += "0" +minutes+ ":"; }else{ s += minutes+ ":"; } //秒钟 var seconds = d.getSeconds(); if(seconds < 10){ s += "0"+seconds; }else{ s += seconds; } return(s); }/**** *@author Ickes *格式化日期<br> *@param str * 要格式的字符串<br> *@例子: * 2012-12-12 <br>转换成<br> 2012/12/12 **/function formatDate(str){return str.split("-").join("/");}/** *@author Ickes *比较两个日期的大小,日期的格式为2012-12-12或2012/12/12 <br> *@param _startId * 开始日期文本框的Id *@param _endId * 结束日期文本框的Id *@retur * 如果结束日期大于开始日期则返回true<br> **/function compareDateId(_statId,_endId){var startDate = formatDate(_$(_statId).value);var endDate = formatDate(_$(_endId).value);var time1=Date.parse(startDate);var time2=Date.parse(endDate); if(time1 > time2){return false;}return true;}/** *@author Ickes *比较两个日期的大小,日期的格式为2012-12-12或2012/12/12 <br> *@param start * 开始日期 *@param end * 结束日期 *@retur * 如果结束日期大于开始日期则返回true<br> **/function compareDateStr(start,end){var startDate = formatDate(start);var endDate = formatDate(end);var time1=Date.parse(startDate);var time2=Date.parse(endDate); if(time1 > time2){return false;}return true;}/**** *@author Ickes * 提交表单 * @param _id * 要提交表单的id * @param url * 路径 * @param method * 补填就是默认:post */function _submit(_id,url,method){if(method=="" || method==null){method="post";}_$(_id).method=method;_$(_id).action=url;_$(_id).submit();} /** * @author Ickes * 传入一个字符串__返回他的所占用的字节<br> * @return * 所占用的字节 */ function byteLen(s) { var l = 0; var a = s.split(""); for (var i=0;i<a.length;i++) { if (a[i].charCodeAt(0)<299) { l++; } else { l+=2; } } return l; }/**** * @author Ickes * 根据id验证文本框中输入的是不是数值 * @param * 文本框的Id * @return * 是数值就返回true,空返回false **/function isNumId(_id){var value=_$(_id).value;//去掉字符串两端的空格value=trim(value);if(value==''){ return false; } var flg=isNaN(value);return !flg;}/** * @author Ickes * 根据id验证文本框中输入的是不是数值<br> * @param _value * 要判断的值 * @return * 是数值就返回true,空返回false **/function isNum(_value){//去掉字符串两端的空格value=trim(_value);if(value==''){ return false; } var flg=isNaN(value);return !flg;}/**** * @author Ickes *根据id验证是否是一个合格的email<br> *@param * 文本框id属性 *@return * 为空时返回false<br> * 如果是一个合法的email则返回true **/function isEmail(_id){ var srt=/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; var email=_$(_id).value; if(email==null || email==""){ return false; } if(srt.test(email)) { //合法时 return true; } else{ //不合法时 return false; }}/** *@author Ickes *是否是电话号码 *@param _id: * 文本框中的id属性 *@return * 为空时返回false<br> * 如果是一个合法的电话则返回true */function isTelId(_id){var str=_$(_id).value; if(str==null || trim(str)==""){ return false; } var str= trim(str);var myphone = /^[\-0-9+()\/]{1,32}$/; if(myphone.test(str)){ return true; } return false;}/** *@author Ickes *字符串是否为合法的电话号码 *@param str: * 要验证的字符串 *@return * 如果是一个合法的电话则返回true */function isTel(str){ if(str==null||trim(str)==""){ return false; } var str= trim(str);var myphone = /^[\-0-9+()\/]{1,32}$/; if(myphone.test(str)){ return true; } return false;}/** * @author Ickes * 身份证号码验证-支持新的带x身份证 * @param num: * 要验证的字符串 * @return * 如果是一个合法的身份证则返回true */function isCardNo(num){num=trim(num); var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1); var error; var varArray = new Array(); var intValue; var lngProduct = 0; var intCheckDigit; var intStrLen = num.length; var idNumber = num; var checkDate = function(date) { return true; } // initialize if ((intStrLen != 15) && (intStrLen != 18)) { //error = "输入身份证号码长度不对!"; //alert(error); //frmAddUser.txtIDCard.focus(); return false; } // check and set value for(i=0;i<intStrLen;i++) { varArray[i] = idNumber.charAt(i); if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) { //error = "错误的身份证号码!."; //alert(error); //frmAddUser.txtIDCard.focus(); return false; } else if (i < 17) { varArray[i] = varArray[i]*factorArr[i]; } } if (intStrLen == 18) { //check date var date8 = idNumber.substring(6,14); if (checkDate(date8) == false) { //error = "身份证中日期信息不正确!."; //alert(error); return false; } // calculate the sum of the products for(i=0;i<17;i++) { lngProduct = lngProduct + varArray[i]; } // calculate the check digit intCheckDigit = 12 - lngProduct % 11; switch (intCheckDigit) { case 10: intCheckDigit = 'X'; break; case 11: intCheckDigit = 0; break; case 12: intCheckDigit = 1; break; } // check last digit if (varArray[17].toUpperCase() != intCheckDigit) { //error = "身份证效验位错误!正确为: " + intCheckDigit + "."; //alert(error); return false; } } else{ //length is 15 //check date var date6 = idNumber.substring(6,12); if (checkDate(date6) == false) { //alert("身份证日期信息有误!."); return false; } } //alert ("Correct."); return true;}/** * @author Ickes * 身份证号码验证-支持新的带x身份证 * @param _id: * 文本框的Id属性 * @return * 如果是一个合法的身份证则返回true */function isCardNoId(_id){var num=trim(_$(_id).value);if(num==null || num==""){return false;} var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1); var error; var varArray = new Array(); var intValue; var lngProduct = 0; var intCheckDigit; var intStrLen = num.length; var idNumber = num; var checkDate = function(date) { return true; } //身份证号码长度 if ((intStrLen != 15) && (intStrLen != 18)) { return false; } // check and set value for(i=0;i<intStrLen;i++) { varArray[i] = idNumber.charAt(i); if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) { //error = "错误的身份证号码!."; return false; } else if (i < 17) { varArray[i] = varArray[i]*factorArr[i]; } } if (intStrLen == 18) { //check date var date8 = idNumber.substring(6,14); if (checkDate(date8) == false) { //error = "身份证中日期信息不正确!."; //alert(error); return false; } // calculate the sum of the products for(i=0;i<17;i++) { lngProduct = lngProduct + varArray[i]; } // calculate the check digit intCheckDigit = 12 - lngProduct % 11; switch (intCheckDigit) { case 10: intCheckDigit = 'X'; break; case 11: intCheckDigit = 0; break; case 12: intCheckDigit = 1; break; } // check last digit if (varArray[17].toUpperCase() != intCheckDigit) { //error = "身份证效验位错误!正确为: " + intCheckDigit + "."; //alert(error); return false; } } else{ //length is 15 //check date var date6 = idNumber.substring(6,12); if (checkDate(date6) == false) { //alert("身份证日期信息有误!."); return false; } } return true;}/** * @author Ickes * 如果身份证是合法的身份证,则返回日期部分的时间对象 * @param card * 身份证号码 * @return * 返回出生日期 */function getCardDate(card){var date="";var year=""; var moth="";var day="";if(card.length==18){ date=card.substring(6,14); year=date.substring(0,4); moth=date.substring(4,6); day =date.substring(6,8); date=year+"/"+moth+"/"+day;}else{ date=card.substring(6,12); year="19"+date.substring(0,2); moth=date.substring(2,4); day =date.substring(4,6); date=year+"/"+moth+"/"+day;}return new Date(date);}/**** * @author Ickes * 根据id在指定的文本后面显示错误信息 **/function showError(_id,error){_$(_id).innerHTML='';_$(_id).innerHTML="<font color='red'>"+error+"<font>";}
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号