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][email protected]([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 }

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

时间: 2024-07-30 18:50:38

Js通用验证的相关文章

js 验证表单 js提交验证类

js 验证表单 js提交验证类 附加:js验证radio是否选择 <script language="javascript">function checkform(obj){for(i=0;i<obj.oo.length;i++)         if(obj.oo[i].checked==true) return true; alert("请选择")return false; }</script><form id="f

js正则表达式:验证邮箱格式、密码复杂度、手机号码、QQ号码

直接上代码 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83

js正则表达式验证

有时候会要验证自己写的正则表达式是否正确 所以写了这个小东西: demo:js正则表达式验证 html: 1 <h3>绿色表示匹配,红色表示不匹配</h3> 2 <label>请在下框填入正则表达式</label><br /> 3 4 <textarea id="regexp"></textarea><br /> 5 6 <label>请在下框填需要验证的式子</label

[掌眼]iOS / Android / java / node.js 通用的 AES256 加解密算法

example.m NSString *text = @"text"; NSString *key32 = @"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; NSData *data = [text dataUsingEncoding:NSUTF8StringEncoding]; NSString *encryptedData = [[data AES256EncryptWithKey:key32] base64EncodedStringWi

js通用方法检测浏览器是否已安装指定插件(IE与非IE通用)

/* * 检测是否已安装指定插件 * * pluginName 插件名称 */ function checkPlugins(pluginName) { var np = navigator.plugins; if (window.ActiveXObject) { // IE // ActiveXObject的对象名 var activexObjectName = pluginName + "." + pluginName; try { var axobj = eval("ne

js正则验证方法大全

js正则验证方法大全 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83

Knockout.js 数据验证之插件版和无插件版

本文我们将介绍使用 Knockout.js 实现一些基本的数据验证.就如我们在标题里提到的,我们会使用两种方法来创建数据验证方法. 使用自定义方法,不需要任何插件 最简单的方法是使用已有的插件 如果你刚刚接触 Knockout.js,强烈建议你阅读我之前的 文章,那篇文章中我分享了一些关于 Knockout.js 的基本知识.本文我们使用 Visual Studio 进行开发,希望你能喜欢.现在开始. 源码下载 Knockout.js Validations 第 1 段(可获 1.23 积分)

js输入验证

//1.js验证只能输入数字. function check_validate1(value){     //定义正则表达式部分     var reg = /^\d+$/;     if( value.constructor === String ){         var re = value.match( reg );         return true;     }     return false; } //2.js验证只能输入字母.数字和下划线.  function check

js 验证手机号码

function validatemobile(phone) { if(phone.length==0) { alert('请输入手机号码!'); document.form1.phone.focus(); return false; } if(phone.length!=11) { alert('请输入有效的手机号码!'); document.form1.phone.focus(); return false; } var myreg = /^13[0-9]{9}$|14[0-9]{9}$|1