layui.use("form", function () { var form = layui.form; //自定义验证规则 form.verify({ minSize: ["{name}最少 {0} 个字符"], maxSize: ["{name}最多 {0} 个字符"], min: ["{name}必须大于等于 {0}"], max: ["{name}必须小于等于 {0}"], equals: ["两次输入不一致"], gtnumber: ["最大值必须大于等于最小值"], gtdate: ["结束时间必须大于等于开始时间"], required: [ "[\\S]+", "{name}不能为空" ], telephone: [ "^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$", "请输入有效的{name},如:010-29292929" ], mobilephone: [ "^[1][0-9]{10}$", "请输入有效的{name}" ], muchTel: [ "^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?|[1][0-9]{10}$", "请输入有效的{name}" ], email: [ "^[a-zA-Z0-9_\.\-]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,4}$", "请输入有效的{name}" ], date: [ "^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$", "请输入有效的{name},如:2008-08-08" ], datetime: [ "^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))\\s+([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$", "请输入有效的{name},如:2008-08-08 08:08:08" ], ip: [ "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", "请输入有效的{name}" ], chinese: [ "^[\u4e00-\u9fa5]+$", "{name}请输入中文" ], url: [ "^http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?$", "请输入有效的{name}" ], urlNoHttp: [ "^([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?$", "请输入有效的{name}" ], zipcode: [ "^[1-9]\\d{5}$", "请输入有效的{name}" ], qq: [ "^[1-9]\\d{4,10}$", "请输入有效的{name}" ], onlyNumber: [ "^[-]?[0-9]+$", "{name}请输入数字" ], onlyNumberWide: [ "^[-]?\\d+(\\.\\d{1,4})?$", "{name}请输入整数或小数" ], onlyDecimal: [ "^[-]?\\d+(\\.\\d{1,2})$", "{name}请输入2位以内的小数" ], illegalLetter: [ "^[^\`\{\}\[!\(\+~@#%\^&\*\)\|\\\\:;\'\"><\?/=_]+$", "{name}含有非法字符,请检查" ], onlyLetter: [ "^[a-zA-Z]+$", "{name}请输入英文字母" ], noSpecialCaracters: [ "^[a-zA-Z][0-9a-zA-Z_]+$", "{name}格式错误,可使用字母、数字及下划线,需以字母开头" ], username: [ "^[a-zA-Z][0-9a-zA-Z_]{3,15}$", "{name}格式错误,4~16个字符,可使用字母、数字及下划线,需以字母开头" ], password: [ "^(?![A-Za-z]+$)(?![a-z\\W]+$)(?![A-Z\\W]+$)(?![0-9\\W]+$)[a-zA-Z0-9\\W]{8,16}$", "{name}格式错误,8-16个字符,需包含字母、数字、特殊符号中的任意两项" ] }); }); //验证身份证号 function checkIdCard(elem) { if (elem.val() == "") return; //这个可以验证15位和18位的身份证,并且包含生日和校验位的验证。 //如果有兴趣,还可以加上身份证所在地的验证,就是前6位有些数字合法有些数字不合法。 var num = elem.val().toUpperCase(); //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。 if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) { return "请输入有效的身份证号码"; } //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 //下面分别分析出生日期和校验位 var len, re; len = num.length; if (len == 15) { re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/); var arrSplit = num.match(re); //检查生日日期是否正确 var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]); var bGoodDay; bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); if (!bGoodDay) { return "请输入有效的身份证号码"; } else { //将15位身份证转成18位 //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); var nTemp = 0, i; num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6); for (i = 0; i < 17; i++) { nTemp += num.substr(i, 1) * arrInt[i]; } num += arrCh[nTemp % 11]; } } if (len == 18) { re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/); var arrSplit = num.match(re); //检查生日日期是否正确 var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]); var bGoodDay; bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); if (!bGoodDay) { return "请输入有效的身份证号码"; } else { //检验18位身份证的校验码是否正确。 //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 var valnum; var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); var nTemp = 0, i; for (i = 0; i < 17; i++) { nTemp += num.substr(i, 1) * arrInt[i]; } valnum = arrCh[nTemp % 11]; if (valnum != num.substr(17, 1)) { return "请输入有效的身份证号码"; } } } return ""; } $(function () { //设置默认提示 $(".search input, .tableLayout input, .tableLayout textarea").each(function () { if ($(this).attr("type") == "submit" || $(this).attr("type") == "reset" || $(this).attr("type") == "button") return; if ($(this).attr("placeholder") == undefined && !$(this).hasClass("input_60")) $(this).attr("placeholder", "请输入" + $(this).parent().prev().text().replace(/:/g, "")); }) //图标悬浮提示 $(".iconTips").live("mouseover", function () { var title = $(this).attr("data-title"); if (!title || title == "null" || title == "") title = "暂无提示信息!"; layer.tips("
" + title + "
", this, { time: -1 }); }).live("mouseout", function () { $(".layui-layer-tips").remove(); }) })