JS+JQuery常见验证方法
2014-01-07 11:58
225 查看
仅供参考
1. 验证邮箱 传入id值 页面另外有id+msg的无内容空id,用于显示错误信息
2. 验证身份证号码 传入输入控件id值
3. 验证是否汉字 name表示控件名称,可以为中文,英文等等 ,id 表示控件id
1. 验证邮箱 传入id值 页面另外有id+msg的无内容空id,用于显示错误信息
function checkEmail(id){ var temp = $("#"+id) var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; if(!myreg.test(temp.val())) { $("#"+id+"msg").html("电子邮箱格式错误"); $("#"+id).addClass("inputBorder"); return false; }else { $("#"+id+"msg").html(""); $("#"+id).removeClass("inputBorder"); return true; } }
2. 验证身份证号码 传入输入控件id值
//TODO 身份证号码校验 START function IDCard_validate(id){ var inputStr = trim($("input[name='" + id + "']").val()); var inputPro = "身份证号"; if (inputStr == null) inputStr = ""; var format = inputStr.length; if (!this.is0AndPosInteger(inputStr)) { $('input[name="'+ id +'"]').addClass('errorItem'); $.messager.alert('提示', inputPro + "输入不合法!"); return false; } if (inputStr == "") return true; if ((format == 18) && (!this.checkCheckStr(inputStr))) { $('input[name="'+ id +'"]').addClass('errorItem'); return false; } if (format == 15 || format == 18) { if (!this.checkID(inputStr, inputPro, format)) { $('input[name="'+ id +'"]').addClass('errorItem'); return false; } } else { $('input[name="'+ id +'"]').addClass('errorItem'); $.messager.alert('提示', "身份证号码的位数输入不正确!"); return false; } $('input[name="'+ id +'"]').removeClass('errorItem'); return true; } /** * (二代身份证最后一位)是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。 * 为确保身份证为18位,Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。 * 身份证第18位(校验码)的计算方法: * 1、将前面的身份证号码17位数分别乘以不同的系数。 * 从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。 * 2、将这17位数字和系数相乘的结果相加。 * 3、用加出来和除以11,看余数是多少? * 4、余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。其分别对应的最后一位身 * 份证的号码为1-0-X-9-8-7-6-5-4-3-2 。 * 5、通过上面得知如果余数是2,身份证的最后一位号码就是罗马数字X。如果余数是10,就会在身份证的第18位数字上出现的是2。 * 例如:某男性的身份证号码是34052419800101001X。我们要看看这个身份证是不是合法的身份证。 * 首先我们得出前17位的乘积和是189,然后用189除以11得出的结果是17+2/11,也就是说其余数是2。 * 最后通过对应规则就可以知道余数2对应的是罗马数字X。所以,可以判定这是一个合格的身份证号码。 **/ function checkCheckStr(inputstr){ var i = (inputstr.substr(0, 1) * 7 + inputstr.substr(1, 1) * 9 + inputstr.substr(2, 1) * 10 + inputstr.substr(3, 1) * 5 + inputstr.substr(4, 1) * 8 + inputstr.substr(5, 1) * 4 + inputstr.substr(6, 1) * 2 + inputstr.substr(7, 1) * 1 + inputstr.substr(8, 1) * 6 + inputstr.substr(9, 1) * 3 + inputstr.substr(10, 1) * 7 + inputstr.substr(11, 1) * 9 + inputstr.substr(12, 1) * 10 + inputstr.substr(13, 1) * 5 + inputstr.substr(14, 1) * 8 + inputstr.substr(15, 1) * 4 + inputstr.substr(16, 1)* 2) % 11; var last = 0; if (i == 10) last = 2; if (i > 2 && i < 10) last = 12 - i; if (i == 2) last = "X"; if (i < 2) last = 1 - i; if (inputstr.substr(17, 1) == last) { return true; } else { // 身份证号码输入不合法!校验位错误! $.messager.alert('提示', "身份证号码输入不合法!"); return false; } } function is0AndPosInteger(inputVal) { var format = inputVal.length; if (format == 18) { var lastChar = inputVal.charAt(inputVal.length - 1) if (lastChar == "X") inputVal = inputVal.substring(0, inputVal.length - 1); } for (var i = 0; i < inputVal.length; i++) { var oneChar = inputVal.charAt(i) if (oneChar < "0" || oneChar > "9") { return false; } } return true; } //校验18位身份证的7-14位或者15位身份证的7-12位的年月日是否正确 function checkID(inputStr,objName,format){ if (this.isValidUserID(inputStr)) { var temp; var year, month, day; if (inputStr.length != format) { $.messager.alert('提示', objName + "格式不对,应为“" + format + "”位。"); return false; } else { if (format == 18) { temp = inputStr.substring(6, 10); year = parseInt(temp, 10); if (year < 1900 || year > 2200) { $.messager.alert('提示', objName + "年份应介于1900与2200之间,请重新输入!"); return false; } } else if (format == 15) { temp = inputStr.substring(6, 8); year = parseInt(temp, 10); if (year < 00 || year > 99) { $.messager.alert('提示', objName + "年份应介于00与99之间,请重新输入!"); return false; } } if (format == 18) temp = inputStr.substring(10, 12); else if (format == 15) temp = inputStr.substring(8, 10); month = parseInt(temp, 10); if (month < 1 || month > 12) { $.messager.alert('提示', objName + "月份必须介于1与12之间!"); return false; } if (format == 18) temp = inputStr.substring(12, 14); else if (format == 15) temp = inputStr.substring(10, 12); day = parseInt(temp, 10); if ((day == 0) || (day > 31)) { $.messager.alert('提示', objName + "日必须介于0与31之间!"); return false; } else if (day > 28 && day < 31) { if (month == 2) { if (day != 29) { $.messager.alert('提示', objName + year + "年" + month + "月无" + day + "日。"); return false; } else { if ((year % 4) != 0) { $.messager.alert('提示', objName + year + "年" + month + "月无" + day + "日。"); return false; } else { if ((year % 100 == 0) && (year % 400 != 0)) { $.messager.alert('提示', objName + year + "年" + month + "月无" + day + "日。"); return false; } } } } } else if (day == 31) { if ((month == 2) || (month == 4) || (month == 6) || (month == 9) || (month == 11)) { $.messager.alert('提示', objName + month + "月无" + day + "日"); return false; } } } return true; } else { $.messager.alert('提示', "身份证应为数字和字母的组合"); return false; } } //判断是否身份ID,过滤特殊符号 function isValidUserID(checkStr) { var checkOK = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; var allValid = true; for (i = 0; i < checkStr.length; i++) { ch = checkStr.charAt(i); for (j = 0; j < checkOK.length; j++) if (ch == checkOK.charAt(j)) break; if (j == checkOK.length) { allValid = false; break; } } return allValid; } //TODO 公民身份证号校验 END
3. 验证是否汉字 name表示控件名称,可以为中文,英文等等 ,id 表示控件id
function checkHanzi(name, id) { var str = document.getElementById(id).value.replace(/(^\s*)|(\s*$)/g, ""); if (str.match(/[^\u4E00-\u9FA5]/g)) { $.messager.alert('提示',name + "的值应该是汉字!"); document.getElementById(id).style.backgroundColor = color; document.getElementById(id).focus(); return false; } else { document.getElementById(id).style.backgroundColor = ''; } return true; }
相关文章推荐
- 快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
- js与jquery正则验证电子邮箱、手机号、邮政编码的方法
- 关于Jquery.validate.js中动态删除验证remove方法的Bug
- js常见验证方法
- 常见的 JQuery 正则表达式以及验证方法
- jquery.validate.js 常见的验证类型
- MVC注册验证:js方法(jQuery)
- jquery.validate.js 常见的验证类型
- 快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
- js验证常见验证方法的整理
- jquery.validate.js表单验证
- MVC使用jQuery从视图向控制器传递Model,数据验证,MVC HTML辅助方法小结
- js与jquery获取父元素,删除子元素的两种不同方法
- jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
- yii form 表单提交之前JS在提交按钮的验证方法
- jQuery 验证控件 jquery.validate.js使用说明+中文API
- CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
- jQuery-JS常用表单验证&35个jQuery小技巧
- jQuery验证控件jquery.validate.js使用说明+中文API