/** * 表单验证工具 */ /** * 验证手机号 */ export const validatePhone = (phone: string): boolean => { const phoneReg = /^1[3-9]\d{9}$/ return phoneReg.test(phone) } /** * 验证邮箱 */ export const validateEmail = (email: string): boolean => { const emailReg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/ return emailReg.test(email) } /** * 验证身份证号 */ export const validateIdCard = (idCard: string): boolean => { const idCardReg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/ return idCardReg.test(idCard) } /** * 验证密码强度 * 必须包含:数字、大小写字母、特殊字符,长度至少6位 */ export const validatePassword = (password: string): boolean => { // 长度至少6位 if (password.length < 6) { return false } // 必须包含数字 const hasNumber = /[0-9]/.test(password) // 必须包含小写字母 const hasLowerCase = /[a-z]/.test(password) // 必须包含大写字母 const hasUpperCase = /[A-Z]/.test(password) // 必须包含特殊字符 const hasSpecialChar = /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(password) return hasNumber && hasLowerCase && hasUpperCase && hasSpecialChar } /** * 验证是否为空 */ export const validateRequired = (value: string): boolean => { return value != null && value.trim().length > 0 } /** * 验证数字 */ export const validateNumber = (value: string): boolean => { const numberReg = /^[0-9]+(\.[0-9]+)?$/ return numberReg.test(value) } /** * 验证整数 */ export const validateInteger = (value: string): boolean => { const integerReg = /^[0-9]+$/ return integerReg.test(value) } /** * 验证字符串长度范围 */ export const validateLength = (value: string, min: number, max: number): boolean => { const length = value.length return length >= min && length <= max } /** * 验证 URL */ export const validateUrl = (url: string): boolean => { const urlReg = /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ return urlReg.test(url) }