lm-form
Version:
* 作者:liuduan * 邮箱:liuduan.05.05@163.com * 版本:**`1.0.2`**
397 lines (347 loc) • 16.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = {
// 密码校验
password: function password(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
value = ('' + value).trim();
return {
validator: param[0] && param[1] ? new RegExp('^[0-9a-zA-Z]{' + param[0] + ',' + param[1] + '}$').test(value) : false,
message: param[0] && param[1] ? '\u8BF7\u586B\u5199' + param[0] + '-' + param[1] + '\u4F4D\u5B57\u6BCD\u3001\u6570\u5B57' : '填写有误'
};
},
// 两次填写是否一致校验
equal: function equal(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
value = ('' + value).trim();
return {
validator: value === param[0],
message: param[1] ? '\u4E24\u6B21\u586B\u5199' + param[1] + '\u4E0D\u4E00\u81F4' : '两次填写不一致'
};
},
// 年龄校验
age: function age(value) {
value = ('' + value).trim();
//根据身份证号判断年龄
var today = new Date(),
year = today.getFullYear(),
month = today.getMonth() + 1,
day = today.getDate(),
age = year - value.substring(6, 10) - 1,
idMonth = value.substring(10, 12) - 0,
idDay = value.substring(12, 14) - 0;
if (idMonth < month || idMonth === month && idDay <= day) {
age++;
}
return {
validator: 21 <= age && age <= 55,
message: '对不起,您的年龄不符合准入要求'
};
},
// 身份证号校验
idNumber: function idNumber(value) {
return {
validator: function (cardNum) {
//省份证号校验
var aCity = {
11: "北京",
12: "天津",
13: "河北",
14: "山西",
15: "内蒙古",
21: "辽宁",
22: "吉林",
23: "黑龙江 ",
31: "上海",
32: "江苏",
33: "浙江",
34: "安徽",
35: "福建",
36: "江西",
37: "山东",
41: "河南",
42: "湖北 ",
43: "湖南",
44: "广东",
45: "广西",
46: "海南",
50: "重庆",
51: "四川",
52: "贵州",
53: "云南",
54: "西藏 ",
61: "陕西",
62: "甘肃",
63: "青海",
64: "宁夏",
65: "新疆",
71: "台湾",
81: "香港",
82: "澳门",
91: "国外 "
},
iSum = 0;
if (!cardNum) {
return false;
}
if (!cardNum.length === 18) {
return false;
}
if (!/^\d{17}(\d|x)$/i.test(cardNum)) {
return false;
}
cardNum = cardNum.replace(/x$/i, "a");
if (aCity[window.parseInt(cardNum.substr(0, 2))] == null) {
return false;
}
var sBirthday = cardNum.substr(6, 4) + "/" + Number(cardNum.substr(10, 2)) + "/" + Number(cardNum.substr(12, 2));
var d = new Date(sBirthday);
if (sBirthday !== d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate()) {
return false;
}
for (var i = 17; i >= 0; i--) {
iSum += Math.pow(2, i) % 11 * window.parseInt(cardNum.charAt(17 - i), 11);
}
if (iSum % 11 !== 1) {
return false;
}
return true;
}(('' + value).trim()),
message: '请填写正确的身份证号'
};
},
// 数字范围,两个小数点
digital: function digital(value) {
value = ('' + value).trim();
return {
validator: /^(?:[1-9]\d*(\.\d{1,2})?|0\.\d{1,2})$/.test(value),
message: '请填写大于0数字(如:8.25)'
};
},
// 车辆成交价范围
limitDigital: function limitDigital(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
value = ('' + value).trim();
return {
validator: /^(?:[1-9]|[1-9]\d+)(\.\d{1,2})?$/.test(value) && value <= param[1] && value >= param[0],
message: '\u8BF7\u586B\u5199' + param[0] + '\u5143-' + param[1] + '\u5143\u7684\u6570\u5B57'
};
},
// 整数范围
intRange: function intRange(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0];
value = ('' + value).trim();
return {
validator: param[1] ? new RegExp('^[1-9]\\d*$', 'g').test(value) && window.parseInt(value) >= param[0] && window.parseInt(value) <= param[1] : false,
message: param[0] && param[1] ? '\u8BF7\u586B\u5199' + param[0] + '-' + param[1] + '\u7684\u6574\u6570' : '请填写指定范围的整数'
};
},
// 数字范围
digitalRange: function digitalRange(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0];
value = ('' + value).trim();
return {
validator: param[1] ? /^(?:[1-9]|[1-9]\d+)(\.\d{1,2})?$/.test(value) && window.parseFloat(value) <= param[1] && parseFloat(value) >= param[0] : false,
message: param[0] && param[1] ? '\u8FD8\u6B3E\u91D1\u989D\u8BF7\u586B\u5199' + param[0] + '-' + param[1] + '\u7684\u6570\u5B57' : '还款金额填写有误'
};
},
// 正整数位数范围
number: function number(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0];
var start = param[0] <= 1 ? 0 : param[0] - 1,
end = param[1] - 1;
return {
validator: param[1] ? new RegExp('^[1-9]\\d{' + start + ',' + end + '}$', 'g').test(('' + value).trim()) : false,
message: param[0] && param[1] ? '\u8BF7\u586B\u5199' + param[0] + '-' + param[1] + '\u4F4D\u6B63\u6574\u6570' : '请填写正确的正整数位数'
};
},
// 邀请码数字范围
inviteCode: function inviteCode(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0];
var start = param[0] <= 1 ? 0 : param[0] - 1,
end = param[1] - 1;
return {
validator: param[1] ? new RegExp('^[1-9]\\d{' + start + ',' + end + '}$', 'g').test(('' + value).trim()) : false,
message: param[0] && param[1] ? '\u8BF7\u586B\u5199' + param[0] + '-' + param[1] + '\u4F4D\u6570\u5B57' : '请填写正确位数的数字'
};
},
// 姓名校验
name: function name(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [2, 10];
return {
validator: new RegExp('^[\\u4e00-\\u9fa5\\u0028\\u0029\\uff08\\uff09]{' + param[0] + ',' + param[1] + '}$').test(('' + value).replace(/\s/g, '')),
message: param[0] && param[1] ? '\u8BF7\u586B\u5199' + param[0] + '-' + param[1] + '\u4E2A\u4E2D\u6587' : '请填写正确个数的中文'
};
},
// 姓名含'·'校验
nameAddDot: function nameAddDot(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [2, 15];
value = ('' + value).replace(/\s/g, '');
var str = '·';
var flag = new RegExp('^[\\u4e00-\\u9fa5\\u0028\\u0029\\uff08\\uff09\xB7]{' + param[0] + ',' + param[1] + '}$').test(value);
var n = value.indexOf(str),
l = value.length;
if (flag && n > -1 && (n === 0 || n === l - 1 || value.split(str).length > 2)) {
flag = false;
}
return {
validator: flag,
message: param[0] && param[1] ? '\u8BF7\u586B\u5199' + param[0] + '-' + param[1] + '\u4E2A\u4E2D\u6587' : '请填写正确个数的中文'
};
},
// 区号校验
areacode: function areacode(value) {
return {
validator: /^(?:0\d{2}|0\d{3})$/.test(('' + value).trim()),
message: '请填写正确的区号'
};
},
// 固定电话校验
telephone: function telephone(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var flag = undefined;
// 区号校验通过,进行固化校验
if (/^(?:0\d{2}|0\d{3})$/.test(param[0])) {
var regexp = param[0].length === 3 ? /^\d{8}$/ : /^\d{7,8}$/;
flag = regexp.test(('' + value).trim());
}
return {
validator: flag,
message: typeof flag === 'undefined' ? '请填写正确的区号' : '请填写正确的固话'
};
},
// 手机号码校验
mobilephone: function mobilephone(value) {
return {
validator: /^(?:13|14|15|16|17|18|19)\d{9}$/.test(('' + value).trim()),
message: '请填写正确的手机号'
};
},
// 长度校验
length: function length(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var len = ('' + value).trim().length;
return {
validator: param[0] && param[1] ? len >= param[0] && len <= param[1] : false,
message: param[0] && param[1] ? '\u8BF7\u586B\u5199' + param[0] + '-' + param[1] + '\u4E2A\u5B57\u7B26' : '请填写正确个数的字符'
};
},
// 银行卡检验规则,允许0开头(交通银行,修改:2017/2/7)
bankCard: function bankCard(value) {
return {
validator: /^\d{12,23}$/.test(('' + value).trim()),
message: '请填写正确的银行卡号'
};
},
// 信用卡号校验
creditCard: function creditCard(value) {
return {
validator: /^[1-9]\d{13,15}$/.test(('' + value).trim()),
message: '请填写正确的信用卡号'
};
},
consistency: function consistency(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
return {
validator: param[0] ? ('' + value).trim() !== ('' + param[0]).trim() : false,
message: param[0] && param[1] ? param[1] + '\u4E0E' + param[2] + '\u4E0D\u80FD\u76F8\u540C' : '两个值不能相同'
};
},
// 通过后台请求验证身份证号是否被注册过
idcardUnique: function idcardUnique(value) {
value = ('' + value).trim();
var flag = true;
var request = new XMLHttpRequest();
request.open('POST', '/exist/identity', false);
//发送合适的请求头信息
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=utf-8");
request.send('idNumber=' + value);
if (request.status >= 200 && request.status < 300 || request.status === 304) {
var data = request.responseText;
// 1:已注册,2:格式不对
flag = [1, 2].indexOf(data - 0) === -1;
} else {
flag = false;
}
return {
validator: flag,
message: '该身份证号已注册!'
};
},
lt: function lt(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
return {
validator: param[0] && param[1] ? param[0] >= param[1] : false,
message: param[0] && param[1] ? '\u53EF\u7528\u4F59\u989D' + param[0] + '<' + param[1] + '\uFF0C\u6682\u4E0D\u80FD\u63D0\u73B0\uFF01' : '可用余额不足,暂不能提现'
};
},
// 数字范围 提示数字单位为万
digitalRangeTwo: function digitalRangeTwo(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
value = ('' + value).trim();
return {
validator: param[0] && param[1] ? /^(?:[1-9]|[1-9]\d+)(\.\d{1,2})?$/.test(value) && parseFloat(value / 10000) <= param[1] && parseFloat(value / 10000) >= param[0] : false,
message: param[0] && param[1] ? '\u8BF7\u586B\u5199' + param[0] + '\u4E07-' + param[1] + '\u4E07\u7684\u6570\u5B57' : '请填写正确的数字'
};
},
// 图形验证码
imageCode: function imageCode(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
return {
validator: param[0] ? new RegExp('^[0-9a-zA-Z]{' + param[0] + '}$').test(('' + value).trim()) : false,
message: param[0] ? '\u8BF7\u586B\u5199' + param[0] + '\u4F4D\u56FE\u5F62\u9A8C\u8BC1\u7801' : '请填写正确位数的图形验证码'
};
},
// 短信验证码
smsCode: function smsCode(value) {
var param = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
return {
validator: new RegExp('^[0-9]{' + param[0] + '}$').test(('' + value).trim()),
message: param[0] ? '\u8BF7\u586B\u5199' + param[0] + '\u4F4D\u77ED\u4FE1\u9A8C\u8BC1\u7801' : '请填写正确位数的短信验证码'
};
},
// 月收入校验 特殊处理
income: function income(value) {
value = ('' + value).trim();
return {
validator: /^(?:[1-9]\d*(\.\d{1,2})?|0\.\d{1,2})$/.test(value) && window.parseInt(value) >= 1000,
message: '收入金额过小或格式错误(最多两位小数)'
};
},
// 车架号验证
VIN: function VIN(value) {
value = ('' + value).trim().toUpperCase();
return {
validator: /^[0-9|A-H|J-N|P|R-Z]{13}[0-9]{4}$/.test(value) && /.*[A-H|J-N|P|R-Z].*/.test(value),
message: '请填写正确的车架号'
};
},
//车牌号验证
carPlateNumber: function carPlateNumber(value) {
value = ('' + value).trim();
return {
validator: value.length === 7 && /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/.test(value),
message: '请填写正确的车牌号'
};
},
// 无链接符日期
dateNum: function dateNum(value) {
value = ('' + value).trim();
return {
validator: /(^(19|20)(\d{2})(((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])))$)|(^((19|20)(0[48]|[2468][048]|[13579][26])|(2000))0229$)/.test(value),
message: '\u8BF7\u586B\u5199\u4F8B20180101\u683C\u5F0F\u7684\u65E5\u671F'
};
},
// 邮箱
email: function email(value) {
value = ('' + value).trim();
var p_email = /^((([a-z]|\d|[!#$%&'*+-/=?^_`{|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#$%&'*+-/=?^_`{|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;
return {
validator: p_email.test(value),
message: '请填写正确的邮箱格式'
};
}
};
module.exports = exports['default'];