UNPKG

mstf-kit

Version:

一个现代化的 JavaScript/TypeScript 工具库,提供了丰富的常用工具函数

55 lines (54 loc) 1.46 kB
function isEmail(email) { const pattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; return pattern.test(email); } function isChinesePhone(phone) { const pattern = /^1[3-9]\d{9}$/; return pattern.test(phone); } function isChineseIdCard(idCard) { const pattern = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; return pattern.test(idCard); } function isUrl(url) { try { new URL(url); return true; } catch (e) { return false; } } function isIPv4(ip) { const pattern = /^(\d{1,3}\.){3}\d{1,3}$/; if (!pattern.test(ip)) return false; return ip.split(".").every((num) => { const n = parseInt(num, 10); return n >= 0 && n <= 255; }); } function validatePassword(password, options = {}) { const { minLength = 8, requireSpecialChar = true, requireNumber = true, requireUppercase = true } = options; if (password.length < minLength) return false; if (requireSpecialChar && !/[!@#$%^&*(),.?":{}|<>]/.test(password)) return false; if (requireNumber && !/\d/.test(password)) return false; if (requireUppercase && !/[A-Z]/.test(password)) return false; return true; } function isSafeString(str) { const pattern = /<[^>]*>|javascript:|data:|vbscript:|expression\(|document\.|window\.|eval\(|setTimeout\(|setInterval\(|alert\(|confirm\(|prompt\(/i; return !pattern.test(str); } export { isChineseIdCard, isChinesePhone, isEmail, isIPv4, isSafeString, isUrl, validatePassword };