/** * validType扩展验证 * @author luoyifan * 2018-11-22 17:32:00 */ "use strict"; $.extend($.fn.textbox.defaults.rules, { //正则验证 sChar: { validator: function (value, param) { var regEn = /[`~!@#$%^&*+<>?:"{},.\/;'[\]]/im, regCn = /[·!#¥——:;“”‘、,|《。》?、【】[\]]/im; if (regEn.test(value) || regCn.test(value)) { return false; } return true; }, message: "不能包含特殊字符" }, noCnEn: { //不能输入中文字符 validator: function (value, param) { return !/[\u4e00-\u9fa5]/g.test(value); }, message: "不能输入中文字符" }, isBlank: { //必填项输入空格无效 validator: function (value, param) { return $.trim(value) != ''; }, message: "不能为空,全空格也不行" }, numFh: { //不能输入中文字符 validator: function (value, param) { return /^[\d:,]+$/.test(value); }, message: "只能输入数字或英文冒号逗号" }, number: { //验证是否为数字,小数点不能超过1位 validator: function (value, param) { return /^\d*\.{0,1}\d{0,1}$/.test(value); }, message: "请输入数字,且小数点后只能为一位" }, numBigDecimal: { //验证是否为数字,小数点不能超过3位 validator: function (value, param) { return /^\d{0,7}(\.\d{0,3})?$/g.test(value); }, message: "只能输入7位整数和3位小数" }, money: { //验证是否为数字,小数点不能超过2位 validator: function (value, param) { return /^\d{0,7}(\.\d{0,2})?$/g.test(value); }, message: "只能输入7位整数和2位小数" }, moneyBigDecimal: { //验证是否为数字,小数点不能超过2位 validator: function (value, param) { return /^\d{0,7}(\.\d{0,2})?$/g.test(value); }, message: "只能输入7位整数和2位小数" }, moneyBigDecimaZZ: { //验证是否为数字,小数点不能超过2位 validator: function (value, param) { return /^\d{0,17}(\.\d{0,2})?$/g.test(value); }, message: "只能输入17位整数和2位小数" }, moneyBigDecimaUse: { //验证是否为数字,小数点不能超过2位 validator: function (value, param) { return /^\d{0,5}(\.\d{0,2})?$/g.test(value); }, message: "只能输入5位整数和2位小数" }, integer: { //验证是否为整数 validator: function (value, param) { return /^[0-9]*$/.test(value); }, message: "请输入正整数" }, gtZero: { validator: function (value, param) { return parseFloat(value) > 0.0; }, message: "必须大于0" }, gtZeroCon: { validator: function (value, param) { return parseFloat(value) >= 0.0; }, message: "必须大于等于0" }, minLength: { validator: function (value, param) { return value.length >= param[0]; }, message: '请输入至少(2)个字符.' }, date: { // 验证日期格式----格式yyyy-MM-dd或yyyy-M-d validator: function (value) { return /^(?:(?!0000)[0-9]{4}([-]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-]?)0?2\2(?:29))$/i.test(value); }, message: '请输入合适的日期格式' }, testDate: { //验证起始日期和结束日期对比 validator: function (value, param) { var d1 = $('' + param[0] + '').datebox('getValue'); return value >= d1; }, message: '结束时间必须大于或等于开始时间' }, gteDate: { validator: function (value, param) { var d1 = $('' + param[0] + '').datebox('getValue'); return value >= d1; }, message: '结束时间必须大于或等于开始时间' }, lteDate: { validator: function (value, param) { var d1 = $('' + param[0] + '').datebox('getValue'); return value <= d1; }, message: '结束时间必须大于或等于开始时间' }, idcard: { // 验证身份证 validator: function (value) { return /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(value); }, message: '身份证号码格式不正确' }, phone: { // 验证电话号码 validator: function (value) { return /^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/i.test(value); }, message: '格式不正确,请使用下面格式:12345678901、1234-12345678-1234' }, mobile: { // 验证手机号码 validator: function (value) { return /^1[3456789]\d{9}$/.test(value); }, message: '手机号码格式不正确' }, chinese: { // 验证中文 validator: function (value) { return /^[\Α-\¥]+$/i.test(value); }, message: '请输入中文' }, english: { // 验证英语 validator: function (value) { return /^[A-Za-z]+$/i.test(value); }, message: '请输入英文' }, unnormal: { // 验证是否包含空格和非法字符 validator: function (value) { return /.+/i.test(value); }, message: '输入值不能为空和包含其他非法字符' }, age: { // 验证年龄 validator: function (value) { return /^(?:[1-9][0-9]?|1[01][0-9]|120)$/i .test(value); }, message: '年龄必须是0到120之间的整数' }, zip: { // 验证邮政编码 validator: function (value) { return /^[1-9]\d{5}$/i.test(value); }, message: '邮政编码格式不正确' }, faxno: { // 验证传真 validator: function (value) { return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value); }, message: '传真号码不正确' }, same: { validator: function (value, param) { if ($("#" + param[0]).val() != "" && value != "") { return $("#" + param[0]).val() == value; } else { return true; } }, message: '两次输入的密码不一致!' }, menuUrl: { // menu Url 格式验证 validator: function (value) { return /^[A-Za-z0-9_/.]*$/i.test(value); }, message: '请输入正确url地址' }, email: { validator: function (value) { return /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/.test(value); }, message: '请输入正确的邮箱地址' }, phoneNum: { //验证手机号 validator: function (value, param) { return /^1[3456789]\d{9}$/.test(value); }, message: '请输入正确的手机号码。' }, comboValidate: { validator: function (value) { var c = $(this).parent().prev(); var opts = c.combobox('options'); var data = c.combobox('getData'); for (var i = 0; i < data.length; i++) { if (value === data[i][opts.textField]) { return true; } } return false; }, message: '请从下拉框中选择一项' }, dateValidate: { //验证日期 validator: function (value, param) { return /^((?:19|20)\d\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/.test(value); }, message: '请输入正确的日期' }, telNum: { //既验证手机号,又验证座机号 validator: function (value, param) { return /(^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$)|(^((\(\d{3}\))|(\d{3}\-))?(1[3456789]\d{9})$)|(^(400)-(\d{3})-(\d{4})(.)(\d{1,4})$)|(^(400)-(\d{3})-(\d{4}$))/.test(value); }, message: '请输入正确的电话号码。' }, startTime: { validator: function (value, param) { var d1 = $.fn.datebox.defaults.parser(param[0]); var d2 = value; d1 = new Date(d1).Format("yyyy-MM-dd"); return d2 <= d1; }, message: '开始日期不能大于结束日期!' }, endTime: { validator: function (value, param) { var d1 = $.fn.datebox.defaults.parser(param[0]); var d2 = value; d1 = new Date(d1).Format("yyyy-MM-dd"); return d2 >= d1; }, message: '结束日期不能小于开始日期!' }, gtZeroNotZ: { validator: function (value, param) { return (parseFloat(value) >= 0.0 && /^[0-9]*$/.test(value)); }, message: "非负正整数" }, });