首页 > 代码库 > Js通用验证

Js通用验证

  1 //-----------------------------------------------------js 验证封装 zhy2014-07-10----------------------------------------------//  2   3 /**    4  * 验证整数  5  * @param str 需验证字符  6  */  7 function isInt(str) {  8     if (!/^(-|\+)?\d+$/.test(str)) {  9         return false; 10     } 11     return true; 12 } 13  14 /**   15  * 大于0正整数 16  * @param str 需验证字符 17  */ 18 function isIntZ(str) { 19     if (!/^\d+$/.test(str)) { 20         return false; 21     } 22     return true; 23 } 24  25 /**   26  * 负整数的验证 27  * @param str 需验证字符 28  */ 29 function isIntF(str) { 30     if (!/^-\d+$/.test(str)) { 31         return false; 32     } 33     return true; 34 } 35  36 /**   37  * 验证浮点数 38  * @param str 需验证字符 39  */ 40 function isDouble(str) { 41     var reg = /^([+-]?)\d*\.\d+$/; 42     return reg.test(str); 43 }; 44  45 /**   46  * 验证正浮点数 47  * @param str 需验证字符 48  */ 49 function isDoubleZ(str) { 50     var reg = /^([+]?)\d*\.\d+$/; 51     return reg.test(str); 52 }; 53 /**   54  * 验证负浮点数 55  * @param str 需验证字符 56  */ 57 function isDoubleF(str) { 58     var reg = /^-\d*\.\d+$/; 59     return reg.test(str); 60 }; 61  62 /**   63  * 字符串非空验证 64  * @param str 需验证字符 65  */ 66 function strIsNull(str) { 67     if (str == null || strTrim(str) == "") { 68         return false; 69     } 70     return true; 71 } 72  73 /**   74  * 验证是否为中文 75  * @param str 需验证字符 76  */ 77 function isChinese(str) { 78     var reg = /[\u4E00-\u9FA5\uF900-\uFA2D]+$/; 79     return reg.test(str); 80 }; 81  82 /**   83  * 验证短时间 如(13:04:06) 84  * @param str 需验证字符 85  */ 86 function isShortTime(str) { 87     var result = str.match(/^(\d{1,2})(:)(\d{1,2})\2(\d{1,2})$/); 88     //输入的参数时间格式不正确 89     if ((result == null) || (result[1] > 24 || result[3] > 60 || result[4] > 60)) { 90         return false; 91     } 92     return true; 93 } 94  95 /**   96  * 验证短日期 如(2003-12-05) 97  * @param str 需验证字符 98  */ 99 function strShortDate(str) {100     var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);101     if ((r == null) || (r[3] > 12 || r[4] > 31)) {102         //时间格式不正确103         return false;104     }105     //验证是不是当前时间106     //var d=new Date(r[1],r[3]-1,r[4]);107     //return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);108     return true;109 }110 111 /**  112  * 验证时间不包含毫秒 如(2003-12-05 13:04:06)113  * @param str 需验证字符114  */115 function strDateTime(str) {116     var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2})(:)(\d{1,2})\6(\d{1,2})$/);117     if ((r == null) || (r[3] > 12 || r[4] > 31 || r[5] > 24 || r[7] > 60 || r[8] > 60)) {118         return false;119     }120     //验证是不是当前时间121     //var d = new Date(r[1], r[3] - 1, r[4], r[5], r[7], r[8]);122     //return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4] && d.getHours() == r[5] && d.getMinutes() == r[7] && d.getSeconds() == r[8]);123     return true;124 }125 126 /**  127  * 转换字节128  * @param str 字符串129  * @param len 最大长度130  */131 function strMaxLen(str, len) {132     if (str != null && strTrim(str) != "") {133         if (strTrim(str).replace(/[^\x00-\xff]/g, "xx").length <= len) {134             return true;135         }136         return false;137     }138     return false;139 }140 141 /**  142  * 转换字节143  * @param str 字符串144  * @param len 最小长度145  */146 function strMinLen(str, len) {147     if (str != null && strTrim(str) != "") {148         if (strTrim(str).replace(/[^\x00-\xff]/g, "xx").length >= len) {149             return true;150         }151         return false;152     }153     return false;154 }155 156 /**157  * 返回当前输入字数158  * @param str 字符串159  * @param len 最大长度160  */161 function strNumberLen(str, len) {162     if (str != null && strTrim(str) != "") {163         return strTrim(str).replace(/[^\x00-\xff]/g, "xx").length/2;164     }165     return 0;166 }167 168 /**  169  * 截取固定长度子字符串从0开始170  * @param sSource 字符串171  * @param iLen 截取长度172  */173 function getInterceptedStr(sSource, iLen) {174     if (sSource.replace(/[^\x00-\xff]/g, "xx").length <= iLen) {175         return sSource;176     }177     var str = "";178     var l = 0;179     var schar;180     for (var i = 0; schar = sSource.charAt(i) ; i++) {181         str += schar;182         l += (schar.match(/[^\x00-\xff]/) != null ? 2 : 1);183         if (l >= iLen) {184             break;185         }186     }187     return str;188 }189 190 /**  191  * 复选框全选/全不选192  * @param obj 当前checkbox对象193  */194 function chkSelected(obj) {195     var elarr = document.getElementsByTagName("input");196     for (var i = 0; i < elarr.length; i++) {197         if (elarr[i].type == "checkbox") {198             elarr[i].checked = obj.checked;199         }200     }201 }202 203 /**  204  * 邮箱格式验证205  * @param str Email字符串  206  * @return  207  */208 function isEmail(str) {209     return (new RegExp(/^([a-zA-Z0-9]+[_|\-|\.]?)*[A-Za-z0-9]+@([A-Za-z0-9]+[_|\-|\.]?)*[A-Za-z0-9]+\.[a-zA-Z]{2,3}$/).test(str))210 }211 212 213 var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];    // 加权因子   214 var ValideCode = [1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2];            // 身份证验证位值.10代表X   215 216 /**  217  * 验证身份证号码218  * @param idCard 身份证号码 219  * @return  220  */221 function IdCardValidate(idCard) {222     idCard = strTrim(idCard.replace(/ /g, ""));               //去掉字符串头尾空格                     223     if (idCard.length == 15) {224         return isValidityBrithBy15IdCard(idCard);       //进行15位身份证的验证    225     } else if (idCard.length == 18) {226         var a_idCard = idCard.split("");227         // 得到身份证数组   228         if (isValidityBrithBy18IdCard(idCard) && isTrueValidateCodeBy18IdCard(a_idCard)) {   //进行18位身份证的基本验证和第18位的验证229             return true;230         } else {231             return false;232         }233     } else {234         return false;235     }236 }237 238 /**  239  * 判断身份证号码为18位时最后的验证位是否正确  240  * @param a_idCard 身份证号码数组  241  * @return  242  */243 function isTrueValidateCodeBy18IdCard(a_idCard) {244     var sum = 0;                             // 声明加权求和变量   245     if (a_idCard[17].toLowerCase() == x) {246         a_idCard[17] = 10;                    // 将最后位为x的验证码替换为10方便后续操作   247     }248     for (var i = 0; i < 17; i++) {249         sum += Wi[i] * a_idCard[i];            // 加权求和   250     }251     valCodePosition = sum % 11;                // 得到验证码所位置   252     if (a_idCard[17] == ValideCode[valCodePosition]) {253         return true;254     } else {255         return false;256     }257 }258 259 /**  260   * 验证18位数身份证号码中的生日是否是有效生日  261   * @param idCard 18位书身份证字符串  262   * @return  263   */264 function isValidityBrithBy18IdCard(idCard18) {265     var year = idCard18.substring(6, 10);266     var month = idCard18.substring(10, 12);267     var day = idCard18.substring(12, 14);268     var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));269     // 这里用getFullYear()获取年份,避免千年虫问题   270     if (temp_date.getFullYear() != parseFloat(year)271           || temp_date.getMonth() != parseFloat(month) - 1272           || temp_date.getDate() != parseFloat(day)) {273         return false;274     } else {275         return true;276     }277 }278 279 /**  280  * 验证15位数身份证号码中的生日是否是有效生日  281  * @param idCard15 15位书身份证字符串  282  * @return  283  */284 function isValidityBrithBy15IdCard(idCard15) {285     var year = idCard15.substring(6, 8);286     var month = idCard15.substring(8, 10);287     var day = idCard15.substring(10, 12);288     var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));289     // 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法   290     if (temp_date.getYear() != parseFloat(year)291             || temp_date.getMonth() != parseFloat(month) - 1292             || temp_date.getDate() != parseFloat(day)) {293         return false;294     } else {295         return true;296     }297 }298 299 /**  300  * 去除前后空格301  * @param str 字符串302  * @return  303  */304 function strTrim(str) {305     return str.replace(/(^\s*)|(\s*$)/g, "");306 }307 308 /**  309  * 去除左边空格310  * @param str 字符串311  * @return  312  */313 function strTrimL(str) {314     return str.replace(/(^[\s]*)/g, "");315 }316 317 /**  318  * 去除右边空格319  * @param str 字符串320  * @return  321  */322 function strTrimR(str) {323     return str.replace(/([\s]*$)/g, "");324 }325 326 /**  327  * 替换字符串中所有空格328  * @param str 字符串329  * @return  330  */331 function replaceSpace(str) {332     return str.replace(/\s/g, "");333 }334 335 /**  336  * 验证IP地址337  * @param str 需验证字符338  * @return  339  */340 function isIP(ip) {341     var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;342     if (reSpaceCheck.test(ip)) {343         ip.match(reSpaceCheck);344         if (RegExp.$1 <= 255 && RegExp.$1 >= 0345           && RegExp.$2 <= 255 && RegExp.$2 >= 0346           && RegExp.$3 <= 255 && RegExp.$3 >= 0347           && RegExp.$4 <= 255 && RegExp.$4 >= 0) {348             return true;349         } else {350             return false;351         }352     } else {353         return false;354     }355 }356 /**  357  * 验证IP地址358  * @param str 需验证字符359  * @return  360  */361 function isIP2(ip) {362     var re = /^(\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])$/363     return re.test(ip);364 }365 366 /**  367  * 固定电话验证 区号与电话之间必须“-”隔开368  * @param str 需验证字符369  * @return  370  */371 function isTelephone(str) {372     var reg = /(^(0\d{2})-(\d{8})$)|(^(0\d{3})-(\d{7})$)|(^(0\d{2})-(\d{8})-(\d+)$)|(^(0\d{3})-(\d{7})-(\d+)$)/;373     return reg.test(str);374 }375 376 /**  377  * 手机号验证378  * @param str 需验证字符379  * @return  380  */381 function isPhone(str) {382     var reg = /^(((1[3|4|5|7|8]))+\d{9})$/;383     return reg.test(str);384 }385 386 //电话格式验证(包含手机号,电话号,400电话)  zjr387 function iSShouJiOrDianHua(val) {388     var rule = /^[1][3|5|8][0-9]{9}$/.test(val);389     var rule1 = /^[0][1-9][0-9]{1,2}[-]?[1-9][0-9]{6,7}$/.test(val);390     var rule2 = /^[1-9][0-9]{6,7}[-][0-9]{1,10}$/.test(val);391     var rule3 = /^[0][1-9][0-9]{1,2}[-]?[1-9][0-9]{6,7}[-][0-9]{1,10}$/.test(val);392     var rule4 = /^(400|800)[-]?(([0-9]{3}[-]?[0-9]{4})|([0-9]{4}[-]?[0-9]{3}))$/.test(val);393     return (rule || rule1 || rule2 || rule3)394 }395 396 //电话格式验证(包含电话号,400电话)  zjr397 function iSDianHua(val) {398     var rule1 = /^[0][1-9][0-9]{1,2}[-]?[1-9][0-9]{6,7}$/.test(val);399     var rule2 = /^[1-9][0-9]{6,7}[-][0-9]{1,10}$/.test(val);400     var rule3 = /^[0][1-9][0-9]{1,2}[-]?[1-9][0-9]{6,7}[-][0-9]{1,10}$/.test(val);401     var rule4 = /^(400|800)[-]?(([0-9]{3}[-]?[0-9]{4})|([0-9]{4}[-]?[0-9]{3}))$/.test(val);402     return (rule1 || rule2 || rule3)403 }404 405 /**  406  * 验证url407  * @param str 需验证字符408  * @return  409  */410 function isUrl(str) {411     var reg = /^http[s]?:\/\/[\w-]+(\.[\w-]+)+([\w-\.\/?%&=]*)?$/;412     return reg.test(str);413 };414 415 /**  416  * 验证邮政编码417  * @param str 需验证字符418  * @return  419  */420 function isZipCode(str) {421     var reg = /^[0-9]{6}$/;422     return reg.test(str);423 }424 425 /**  426  * 6-20个字母、数字、下划线(常用于验证用户名密码)427  * @param str 需验证字符428  * @return  429  */430 function userNameOrPwdStr(str) {431     var reg = /^(\w){6,18}$/;432     return reg.test(str);433 }434 435 /**  436  * 1-20个字母、数字、下划线(常用于验证用户名密码)437  * @param str 需验证字符438  * @return  439  */440 function userNameStr(str) {441     var reg = /^(\w){1,20}$/;442     return reg.test(str);443 }444 /**  445  * 修改提示信息446  * @param tagId 标签id447  * @param str 需验证字符448  * @return  449  */450 function updatePointOut(tagId, str) {451     $("#" + tagId).html(str);452 }453 454 //验证文本内容为空时 border变为红色 参数为文本框对象455 function IsEmpty(info) {456     var result = true;457     if ($.trim(info.val())=="") {458         info.css({ "border": "1px solid red" });459         result=false;460     }461     return result;462 }463 464 //验证文本内容为空时 border变为红色 参数为文本框对象465 //info 文本框对象 wenben 文本框的默认值 cuowutishi 给出错误提示466 function IsEmpty(info,wenben) {467     var result = true;468     if ($.trim(info.val()) == "" || $.trim(info.val())==wenben) {469         info.css({ "border": "1px solid red" });470         result = false;471     }472     return result;473 }474 475 //验证文本内容为空时 border变为红色 参数为文本框对象476 //info 文本框对象 wenben 文本框的默认值 cuowutishi 给出错误提示477 function IsEmpty(info, wenben, cuowutishi) {478     var result = true;479     if ($.trim(info.val()) == "" || $.trim(info.val()) == wenben||$.trim(info.val()) == cuowutishi) {480         info.css({ "border": "1px solid red" });481         result = false;482     }483     return result;484 }485 486 487 //电话或手机488 function isPhoneOrTel(val) {489     var result = /^[1-9][0-9]{6,7}$/.test(val);490     var result1 = /^[0][1-9][0-9]{1,2}[-]?[1-9][0-9]{6,7}$/.test(val);491     var result2 = /^[1-9][0-9]{6,7}[-][0-9]{1,10}$/.test(val);492     var result3 = /^[0][1-9][0-9]{1,2}[-]?[1-9][0-9]{6,7}[-][0-9]{1,10}$/.test(val);493     var result4 = /^[4,8][0][0][-]?(([0-9]{3}[-]?[0-9]{4})|([0-9]{4}[-]?[0-9]{3}))$/.test(val);494     var result5 = /^1(([3,8][0-9])|([5]([0-3]|[5-9]))|([4][5,7])|([7][6]))[0-9]{8}$/.test(val);495     return (result || result1 || result2 || result3 || result4 || result5)496 }497 498 //字符串长度范围(包含临界值)499 //说明:可为空min=0,不为空min=1500 function strLength(val, min, max) {501     if (val.length < min || val.length > max) {502         return false;503     }504     return true;505 }506 507 //获取当前时间(yyyy-MM-dd hh:mm:dd格式)508 function getDate() {509     var date = new Date();510     var year = date.getFullYear() + "-";511     var month = date.getMonth()+1;512     var monthStr = (month > 9 ? "" : "0") + month + "-";513     var day = date.getDate();514     var dayStr = (day > 9 ? "" : "0") + day + " ";515     var hours = date.getHours();516     var hoursStr = (hours > 9 ? "" : "0") + hours + ":";517     var minutes = date.getMinutes();518     var minutesStr = (minutes > 9 ? "" : "0") + minutes + ":";519     var seconds = date.getSeconds();520     var secondsStr = (seconds > 9 ? "" : "0") + seconds;521     return (year + monthStr + dayStr + hoursStr + minutesStr + secondsStr);522 }

 如果帮到你了请点赞奥,转载请注明出处

Js通用验证