/**
* 邮箱
* @param {*} s
*/
export function isEmail(s) {
return /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(
s
);
}
/**
* 手机号码
* @param {*} s
*/
export function isMobile(s) {
return /^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$/.test(
s
);
}
/**
* 电话号码
* @param {*} s
*/
export function isPhone(s) {
return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s);
}
/**
* URL地址
* @param {*} s
*/
export function isURL(s) {
return /^http[s]?:\/\/.*/.test(s);
}
/**
* IP地址
* @param {*} s
*/
export function isIP(s) {
return (
/((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))/.test(
s
) || /^([\da-fA-F]{1,4}:){7}[\da-fA-F]{1,4}$/.test(s)
);
}
/**
* 检查身份证号码
* @param {*}value
*/
export function isIdCard(value) {
var arrVerifyCode = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];
var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
var Checker = [1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1];
if (value.length != 15 && value.length != 18) {
return "身份证号共有15位或18位";
}
var Ai =
value.length == 18
? value.substring(0, 17)
: value.slice(0, 6) + "19" + value.slice(6, 16);
if (!/^\d+$/.test(Ai)) {
return "身份证除最后一位外,必须为数字";
}
var yyyy = Ai.slice(6, 10),
mm = Ai.slice(10, 12) - 1,
dd = Ai.slice(12, 14);
var d = new Date(yyyy, mm, dd),
now = new Date();
var year = d.getFullYear(),
mon = d.getMonth(),
day = d.getDate();
if (year != yyyy || mon != mm || day != dd || d > now || year < 1800) {
return "身份证格式错误!";
}
for (var i = 0, ret = 0; i < 17; i++) {
ret += Ai.charAt(i) * Wi[i];
}
Ai += arrVerifyCode[(ret %= 11)];
// console.log('-------Ai校验', Ai);
if (value.length == 18 && value != Ai) {
return "身份证号码错误!";
} else {
return "success";
}
}