需要修复商城顶部筛选左右滑动问题

This commit is contained in:
cbb
2025-12-24 17:53:13 +08:00
parent 6f418fae8a
commit b67f9611c7
48 changed files with 1067 additions and 221 deletions

84
utils/validate.js Normal file
View File

@@ -0,0 +1,84 @@
// 正则
/** 手机号正则(中国大陆) */
const PHONE_REGEX = /^1[3-9]\d{9}$/
/** 邮箱正则 */
const EMAIL_REGEX = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
/** 身份证号(简化版) */
const ID_CARD_REGEX = /(^\d{15}$)|(^\d{18}$)|(^\d{17}[\dXx]$)/
/** 密码强度至少8位包含数字和字母 */
const PASSWORD_REGEX = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d@$!%*#?&]{8,}$/
/**
* 校验手机号
* @param {string} phone - 待校验的手机号
* @returns {{ valid: boolean, message: string }}
*/
export const validatePhone = phone => {
if (!phone) return { valid: false, message: '手机号不能为空' }
if (!PHONE_REGEX.test(phone)) {
return { valid: false, message: '手机号格式不正确' }
}
return { valid: true, message: '' }
}
/**
* 校验邮箱
* @param {string} email - 待校验的邮箱
* @returns {{ valid: boolean, message: string }}
*/
export const validateEmail = email => {
if (!email) return { valid: false, message: '邮箱不能为空' }
if (!EMAIL_REGEX.test(email)) {
return { valid: false, message: '邮箱格式不正确' }
}
return { valid: true, message: '' }
}
/**
* 校验密码强度
* @param {string} password - 待校验的密码
* @returns {{ valid: boolean, message: string }}
*/
export const validatePassword = password => {
if (!password) return { valid: false, message: '密码不能为空' }
if (password.length < 8) {
return { valid: false, message: '密码长度不能少于8位' }
}
if (!PASSWORD_REGEX.test(password)) {
return { valid: false, message: '密码需包含字母和数字' }
}
return { valid: true, message: '' }
}
/**
* 校验确认密码是否与原密码一致
* @param {string} password - 原始密码
* @param {string} confirmPassword - 确认密码
* @returns {{ valid: boolean, message: string }}
*/
export function validateConfirmPassword(password, confirmPassword) {
if (!confirmPassword) {
return { valid: false, message: '请再次输入密码' }
}
if (password !== confirmPassword) {
return { valid: false, message: '两次输入的密码不一致' }
}
return { valid: true, message: '' }
}
/**
* 校验身份证号(仅格式校验,不验证真实性)
* @param {string} idCard - 待校验的身份证号
* @returns {{ valid: boolean, message: string }}
*/
export const validateIdCard = idCard => {
if (!idCard) return { valid: false, message: '身份证号不能为空' }
if (!ID_CARD_REGEX.test(idCard)) {
return { valid: false, message: '身份证号格式不正确' }
}
return { valid: true, message: '' }
}