/**
 * 邮箱
 * @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 /^1[0-9]{10}$/.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)
}

/**
 * 身份证号码
 * @param {Object} idCard
 */
export function isIdentityId(idCard) {
	var flag = false
	var regIdCard =
		/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
	if (regIdCard.test(idCard)) {
		if (idCard.length === 18) {
			//将前17位加权因子保存在数组里
			var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
			//这是除以11后，可能产生的11位余数、验证码，也保存成数组
			var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2);
			//用来保存前17位各自乖以加权因子后的总和
			var idCardWiSum = 0;
			for (var i = 0; i < 17; i++) {
				idCardWiSum += idCard.substring(i, i + 1) * idCardWi[i];
			}
			//计算出校验码所在数组的位置
			var idCardMod = idCardWiSum % 11;
			//得到最后一位身份证号码
			var idCardLast = idCard.substring(17);
			//如果等于2，则说明校验码是10，身份证号码最后一位应该是X
			if (idCardMod == 2) {
				if (idCardLast == "X" || idCardLast == "x") {
					flag = true;
				} else {
					flag = false;
				}
			} else {
				//用计算出的验证码与最后一位身份证号码匹配，如果一致，说明通过，否则是无效的身份证号码
				if (idCardLast == idCardY[idCardMod]) {
					flag = true;
				} else {
					flag = false;
				}
			}
		} else if (idCard.length == 15) {
			var id17 = idCard.substring(0, 6) + '19' + idCard.substring(6);
			var parityBit = getParityBit(id17);
			var tempIdCard = id17 + parityBit;
			flag = validateIdCard(tempIdCard);
		} else {
			flag = false;
		}
		return flag;
	}
}
