12 lines
432 B
TypeScript
12 lines
432 B
TypeScript
/** 从带单位的文本(如「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
|
|
}
|