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) - 1 272 || 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) - 1 292 || 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 >= 0 345 && RegExp.$2 <= 255 && RegExp.$2 >= 0 346 && RegExp.$3 <= 255 && RegExp.$3 >= 0 347 && 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电话) zjr 387 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电话) zjr 397 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 * 验证url 407 * @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 标签id 447 * @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=1 500 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 }
如果帮到你了请点赞奥,转载请注明出处
原文:http://www.cnblogs.com/zhhying/p/4201429.html