解析输出说明

解析 API 除了返回数值本身,还会提供一组完整的符号信息,便于在 UI 或业务逻辑中做进一步处理。

基本形态

import { parse } from 'internationalized/core';

const result = parse('-1,234.50');

result 为:

{
  value: -1234.5,
  success: true,
  error: null,
  input: '-1,234.50',
  mathSign: -1,
  isZero: false,
  isNegativeZero: false,
  isPositive: false,
  isNegative: true,
  isInteger: false
}

字段解释

字段类型说明
mathSignnumberMath.sign 的同源结果。返回 -1, 0, 1NaN
isZeroboolean是否为 0,包括 -0
isNegativeZeroboolean是否严格等于 -0(通过 Object.is 判断)。
isPositiveboolean是否大于 0。
isNegativeboolean是否小于 0,或为 -0
isIntegerboolean是否为整数。

特殊值

当输入无法解析为有效数字时:

const failed = parse('not a number');
// failed.success === false
// failed.mathSign === NaN
// 其余布尔标识均为 false

Infinity、NaN 等特殊值同样兼容,可结合 isFinite 与上述字段进行处理。

与插件协同

所有内置与自定义插件的解析结果都会自动注入这些字段,无需额外配置。这确保了在处理千分制、百分比或自定义符号格式时也能获得一致的符号信息。