/** * 验证邮箱格式 * @param email 邮箱地址 * @returns 是否有效 */ export function validateEmail(email: string): boolean { return /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/.test(email) } /** * 验证密码格式 * @param password 密码 6-20位,必须包含字母和数字 * @returns 是否有效 */ export function validatePassword(password: string): boolean { return /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/.test(password) } /** * 检查密码强度 * @param password 密码 * @returns 'strong' | 'medium' | 'weak' | 'invalid' */ export function checkPasswordStrength(password: string): 'strong' | 'medium' | 'weak' | 'invalid' { // 强密码:8位以上,包含大小写字母、数字和特殊字符 const strongRegex = /^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\W).*$/ // 中等密码:8位以上,包含大小写字母、数字、特殊字符中的两项 const mediumRegex = /^(?=.{8,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[a-z])(?=.*\W))|((?=.*[0-9])(?=.*\W))|((?=.*[A-Z])(?=.*\W))).*$/ // 足够长度:8位以上 const enoughRegex = /(?=.{8,}).*/ if (strongRegex.test(password)) { return 'strong' } else if (mediumRegex.test(password)) { return 'medium' } else if (enoughRegex.test(password)) { return 'weak' } return 'invalid' }