UNPKG

cnwy-js-util

Version:

js常见的函数工具库

78 lines (73 loc) 2.2 kB
/** * @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); }