UNPKG

vimo-dt

Version:

A Vue2.x UI Project For Mobile & HyBrid

188 lines (167 loc) 5.26 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = { integer: { type: 'number', regexp: /^-?[1-9]\d*$/ }, positiveInteger: { type: 'number', regexp: /^[1-9]\d*$/ }, negativeInteger: { type: 'number', regexp: /^-[1-9]\d*$/ }, email: { type: 'email', regexp: /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/ }, ip: { type: 'number', regexp: /(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)/ }, idCard: { type: 'text', regexp: function regexp(num) { if (!num) return false; num = num.toUpperCase(); var cityCode = { 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: '国外 ' }; if (!cityCode[num.substr(0, 2)]) { if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') { console.log('地址编码错误'); } return false; } if (!/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)) { if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') { console.log('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X。'); } return false; } var re, len, arrSplit, dtmBirth, bGoodDay, arrInt, arrCh, nTemp, k; len = num.length; if (len === 15) { re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/); arrSplit = num.match(re); dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]); bGoodDay = dtmBirth.getYear() === Number(arrSplit[2]) && dtmBirth.getMonth() + 1 === Number(arrSplit[3]) && dtmBirth.getDate() === Number(arrSplit[4]); if (!bGoodDay) { if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') { console.log('输入的身份证号里出生日期不对!'); } return false; } else { arrInt = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; arrCh = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; nTemp = 0; num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6); for (k = 0; k < 17; k++) { nTemp += num.substr(k, 1) * arrInt[k]; } num += arrCh[nTemp % 11]; return true; } } if (len === 18) { re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/); arrSplit = num.match(re); dtmBirth = new Date(arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]); bGoodDay = dtmBirth.getFullYear() === Number(arrSplit[2]) && dtmBirth.getMonth() + 1 === Number(arrSplit[3]) && dtmBirth.getDate() === Number(arrSplit[4]); if (!bGoodDay) { if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') { console.log('输入的身份证号里出生日期不对!'); } return false; } else { var valnum; arrInt = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; arrCh = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; nTemp = 0; for (k = 0; k < 17; k++) { nTemp += num.substr(k, 1) * arrInt[k]; } valnum = arrCh[nTemp % 11]; if (valnum !== num.substr(17, 1)) { if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') { console.log('18位身份证的校验码不正确!应该为:' + num.substr(17, 1) + '->' + valnum); } return false; } return true; } } return false; } }, password: { type: 'password', regexp: /^[a-zA-Z]\w{5,17}$/ }, tel: { type: 'tel', regexp: /^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$/ }, mobile: { type: 'tel', regexp: /^((13[0-9])|(14[0-9])|(15[0-9])|(18[0-9])|(17[0-9]))\d{8}$/ }, cn: { type: 'text', regexp: /[\u4e00-\u9fa5]/ }, securityCode: { type: 'number', regexp: /^\d{4,}$/ }, nickName: { type: 'text', regexp: /[A-Za-z0-9_\-\u4e00-\u9fa5]+/ }, qq: { type: 'number', regexp: /^[1-9][0-9]{4,}$/ }, url: { type: 'url', regexp: /^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+/ } };