/** * 客户端表单校验(与 server/utils/validators.ts 保持一致)。 * 电话号段支持:中国大陆手机号 + 港澳台/海外(+区号 或 00 区号)。 */ /** 归一化:去除空格、括号、连字符;00 开头视为国际号 */ export function normalizePhone(v: string): string { return (v || '').replace(/[\s()-]/g, '').replace(/^00/, '+') } /** * 校验电话是否有效。 * - 含 + 或 00 前缀:按国际号码处理,国家码+号码总长 8~15 位即可(覆盖港澳台/海外)。 * - 无前缀:按中国大陆手机号 1[3-9]\d{9} 处理。 */ export function validatePhone(value: string): boolean { const v = normalizePhone(value) if (!v) return false if (v.startsWith('+')) { const digits = v.slice(1).replace(/[^\d]/g, '') return /^\d{8,15}$/.test(digits) } return /^1[3-9]\d{9}$/.test(v) }