首页 > Web开发 > 详细

Js通用验证

时间:2015-01-04 17:04:02      阅读:415      评论:0      收藏:0      [点我收藏+]
  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 }

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

Js通用验证

原文:http://www.cnblogs.com/zhhying/p/4201429.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!