parseChineseNumber()
function parseChineseNumber(s): number;
Defined in: packages/utils/src/string/parseChineseNumber.ts:84
解析中文数字
采用「段级单位(万/亿)+ 段内单位(千/百/十)」两级模型,
而不是逐字符的十进制位移 —— 后者无法表达 十五万 这类段级乘法(UTL-015)。
支持字符集:
- 数字:
〇零一二两三四五六七八九、财务大写壹贰叁肆伍陆柒捌玖、ASCII0-9 - 段内单位:
十拾百佰千仟 - 段级单位:
万亿 - 负号:以
负或-开头
语义约定:
- 连续数字字符按位组成一个数(
10000→ 10000,15万→ 150000) - 段内单位必须严格递减(
一百千、十十抛错) - 同一个段级单位不得连续复用(
一万二万抛错;一万亿、一亿二千万合法) - 末尾的裸数字落在个位(
一万一→ 10001,一万一百一→ 10101) - 单位前无数字时数量为 1(
十→ 10,万→ 10000)
Parameters
| Parameter | Type | Description |
|---|---|---|
s | string | 待解析字符串,允许首尾空白 |
Returns
number
解析出的数字
Throws
空输入、含不支持字符、单位顺序非法,或结果超出安全整数范围
Example
parseChineseNumber('十五万'); // 150000
parseChineseNumber('一亿二千万'); // 120000000
parseChineseNumber('负一百'); // -100