/** 系统默认头像(public 静态资源) */ export const DEFAULT_AVATAR_URL = '/images/default-avatar.svg' const IMAGE_EXT_PATTERN = /\.(png|jpe?g|gif|webp|svg|bmp|ico)(\?.*)?$/i /** 判断是否为可用的头像地址(过滤 "1234" 等无效占位) */ export function isValidAvatarUrl(url?: string | null): boolean { if (!url?.trim()) return false const value = url.trim() if ( value.startsWith('http://') || value.startsWith('https://') || value.startsWith('data:image/') || value.startsWith('blob:') || value.startsWith('/') ) { return true } return IMAGE_EXT_PATTERN.test(value) } /** 无头像或无效地址时返回系统默认头像 */ export function resolveAvatarUrl(url?: string | null): string { return isValidAvatarUrl(url) ? url!.trim() : DEFAULT_AVATAR_URL }