2b69686795
- 新增404页面,优化未找到页面体验,避免被搜索引擎索引 - 增加文件代理接口,隐藏真实文件服务器地址,支持文件请求代理 - 实现/article、/case、/product及/page动态路由兼容列表与详情展示 - 添加动态CMS页面兼容入口处理旧式路径,统一路由与SEO设置 - 新增模板1、模板7、模板2、模板3关于我们页面,实现多模板支持 - 模板增强支持CMS单页内容加载及SEO信息动态设置 - 配置环境变量及Git忽略文件规则辅助开发和构建环境管理
25 lines
822 B
TypeScript
25 lines
822 B
TypeScript
/**
|
|
* 表单/留言输入校验
|
|
* 电话号段支持:中国大陆手机号 + 港澳台/海外(+区号 或 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)
|
|
}
|