// 通用格式化 / 校验纯函数(无状态,供 composable 与页面复用)。 /** Date → `YYYY-MM-DD` */ export const formatDate = (date: Date | string): string => { const transformedDate = typeof date === "string" ? new Date(date) : date; if (Number.isNaN(transformedDate.getTime())) return ""; const year = transformedDate.getFullYear(); const month = String(transformedDate.getMonth() + 1).padStart(2, "0"); const day = String(transformedDate.getDate()).padStart(2, "0"); return `${year}-${month}-${day}`; }; /** 手机号输入格式化:仅保留数字并截断到 11 位。 */ export const formatPhoneNumber = (value: string): string => value.replace(/\D/g, "").slice(0, 11); /** 中国大陆手机号校验。 */ export const isValidPhone = (value: string): boolean => /^1[3-9]\d{9}$/.test(value);