1.姓名验证
/^[\u4e00-\u9fa5]{2,4}$/ //2-4个中文字符正则
2.座机验证
/^(0\d{2,3})-?(\d{7,8})$/
3.电子邮箱验证
/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
4.邮政编码验证
/^[1-9]\d{5}$/
5.注册账号验证
/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/
6.QQ号码验证
/^[1-9][0-9]\d{4,9}$/
7.手机号验证
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
rules:{
手机号:
phone:[
{required:true,messgae:'请输入手机号',trigger:'blur'},
{pattern: /^(((\+?86)|(\(\+86\)))?1[13456789]\d{9}|((\+?61)|((\+61\)))?4\d{8})$/
message:'手机格式不对‘,trigger:'blur'}
]
身份证号:
idCard:[
{required:true,validator: checkIdentitytionId, trigger: 'blur' }
],
}
8.身份证验证
这段代码写在 data 里面,不用放在 data return 里面
var checkIdentitytionId = (rule, value, callback) => {
if (!value) {
return callback(new Error('身份证号不能为空'))
}
if (!/(^\d{15}$)|(^\d{17}(\d|X|x)$)/.test(value)) {
callback(new Error('你输入的身份证长度或格式错误'))
}
//身份证城市
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: '国外',
}
if (!aCity[parseInt(value.substr(0, 2))]) {
callback(new Error('你的身份证地区错误'))
}
// 出生日期验证
var sBirthday = (
value.substr(6, 4) + '-' + Number(value.substr(10, 2)) + '-' +Number(value.substr(12, 2))).replace(/-/g, '/'),
d = new Date(sBirthday)
if (
sBirthday !=
d.getFullYear() + '/' + (d.getMonth() + 1) + '/' + d.getDate()
) {
callback(new Error('身份证上的出生日期错误'))
}
// 身份证号码校验
var sum = 0,
weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2],
codes = '10X98765432'
for (var i = 0; i < value.length - 1; i++) {
sum += value[i] * weights[i]
}
var last = codes[sum % 11] //计算出来的最后一位身份证号码
if (value[value.length - 1] != last) {
callback(new Error('你输入的身份证号错误'))
}
callback()
}
9.通过身份证号获取出生日期和性别
1.根据身份证号码获取出生日期
function getBirth(idCard) {
var birthday = "";
if(idCard != null && idCard != ""){
if(idCard.length == 15){
birthday = "19"+idCard.slice(6,12);
} else if(idCard.length == 18){
birthday = idCard.slice(6,14);
}
birthday = birthday.replace(/(.{4})(.{2})/,"$1-$2-");
//通过正则表达式来指定输出格式为:1990-01-01 } return birthday; }
代码中的if判断是因为一代身份证是15位,二代身份证是18位。但是现在第一代身份证已经失效了,所以不考虑也是可以的.
2.根据身份证号码获取性别
function getSex(idCard) {
var sexStr = '';
if (parseInt(idCard.slice(-2, -1)) % 2 == 1) {
sexStr = 'man';
} else {
sexStr = 'woman';
}
return sexStr;
}
性别是根据身份证的倒数第二位来判断的,奇数为男生,偶数为女生.