cnwy-js-util
Version:
js常见的函数工具库
78 lines (73 loc) • 2.2 kB
JavaScript
/**
* @name 是否为邮箱
* @param {string} email
* @returns {Boolean}
*/
export function validEmail(email) {
const reg =
/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return reg.test(email);
}
/**
* @name 验证是否为手机号码
* @param {string | number} phone
* @returns
*/
export function validPhone(phone) {
const reg = /^1[3-9]\d{9}$/;
return reg.test(phone);
}
/**
* @name 验证身份号码
* @param {number | string} cardNumber
* @returns
*/
export function validCard(cardNumber) {
const reg =
/^[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{3}([0-9]|X)$/;
return reg.test(phone);
}
// 密码校验规则
export const passwordRegex = /^(?=.*[a-zA-Z])(?=.*[\d])[^a-zA-Z\d]*.{6,20}$/;
/**
* @name 验证是否为真实连接
* @param {string} url
* @returns {Boolean}
*/
export function validUrl(url) {
const reg =
/^(?:http|ftp|https):\/\/[\w.-]+(?:\.[\w.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.%]+$/;
return reg.test(url);
}
// 银行卡号码校验(luhn算法)
export function bankCardCheck(num) {
let arr = (num + '')
.split('')
.reverse()
.map(x => parseInt(x));
let lastDigit = arr.splice(0, 1)[0];
let sum = arr.reduce(
(acc, val, i) => (i % 2 !== 0 ? acc + val : acc + ((val * 2) % 9) || 9),
0
);
sum += lastDigit;
return sum % 10 === 0;
}
// 验证护照(包含香港、澳门)
export function isPassport(value) {
return /(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/g.test(
value
);
}
// ip校验
export function isIpv4(s) {
const ipv4Reg =
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
return ipv4Reg.test(s);
}
// 身份证号校验
export function isIdCard(s) {
const sfzReg =
/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
return sfzReg.test(s);
}