/** 从带单位的文本(如「3900克」「3900g」)中提取数值部分 */ export function extractNumericPart(val: unknown): number | null { if (val == null || val === '') return null if (typeof val === 'number') { return Number.isNaN(val) ? null : val } const match = String(val).trim().match(/-?\d+(?:\.\d+)?/) if (!match) return null const num = Number(match[0]) return Number.isNaN(num) ? null : num }