首页 > 代码库 > 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通用验证
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。