# strnum 中文文档

规范地址：https://npmcn.com/package/strnum/

版本：2\.5\.1
npm 元数据更新时间：2026-10-10T11:45:05.682Z
中文译文更新时间：2026-11-05T15:46:13.316Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/strnum
原文对照：https://npmcn.com/package/strnum/?lang=original
项目主页：https://github.com/NaturalIntelligence/strnum#readme
源码仓库：https://github.com/NaturalIntelligence/strnum

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：14.9 kB，5 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：1 个
- 首次发布：2021-09-05T10:04:26.184Z
- 最新版本发布：2026-10-10T11:45:05.127Z
- 近 30 天下载量：333561864（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：28（近 12 个月 11 个）

## 中文简介

根据配置分析字符串到数字

## 安装

```sh
npm install strnum
```

也可以使用：`pnpm add strnum`、`yarn add strnum`、`bun add strnum`

## README

# 字符串

根据配置将字符串分析为数字

[![strnum downloads](https://img.shields.io/npm/dw/strnum.svg)](https://npm-compare.com/strnum) [![strnum version](https://img.shields.io/npm/v/strnum.svg)](https://www.npmjs.com/package/strnum) [![strnum license](https://img.shields.io/npm/l/strnum.svg)](https://github.com/NaturalIntelligence/strnum)

## 用户

[![](https://avatars.githubusercontent.com/u/41077760?s=100&v=4)](https://github.com/aws-amplify) [![](https://avatars.githubusercontent.com/u/90901882?s=100&v=4)](https://github.com/astrapay) [![](https://avatars.githubusercontent.com/u/60110287?s=100&v=4)](https://github.com/process-analytics) [![](https://avatars.githubusercontent.com/u/16322633?s=100&v=4)](https://github.com/NaturalIntelligence) 许多反应原生工程和插件

## 使用量

```bash
npm install strnum
```

```js
const toNumber = require("strnum");

toNumber(undefined) // undefined
toNumber(null)) //null
toNumber("")) // ""
toNumber("string"); //"string")
toNumber("12,12"); //"12,12")
toNumber("12 12"); //"12 12")
toNumber("12-12"); //"12-12")
toNumber("12.12.12"); //"12.12.12")
toNumber("0x2f"); //47)
toNumber("-0x2f"); //-47)
toNumber("0x2f", { hex :  true}); //47)
toNumber("-0x2f", { hex :  true}); //-47)
toNumber("0x2f", { hex :  false}); //"0x2f")
toNumber("-0x2f", { hex :  false}); //"-0x2f")
toNumber("06"); //6)
toNumber("06", { leadingZeros :  true}); //6)
toNumber("06", { leadingZeros :  false}); //"06")

toNumber("006"); //6)
toNumber("006", { leadingZeros :  true}); //6)
toNumber("006", { leadingZeros :  false}); //"006")
toNumber("0.0"); //0)
toNumber("00.00"); //0)
toNumber("0.06"); //0.06)
toNumber("00.6"); //0.6)
toNumber(".006"); //0.006)
toNumber("6.0"); //6)
toNumber("06.0"); //6)

toNumber("0.0",  { leadingZeros :  false}); //0)
toNumber("00.00",  { leadingZeros :  false}); //"00.00")
toNumber("0.06",  { leadingZeros :  false}); //0.06)
toNumber("00.6",  { leadingZeros :  false}); //"00.6")
toNumber(".006", { leadingZeros :  false}); //0.006)
toNumber("6.0"  ,  { leadingZeros :  false}); //6)
toNumber("06.0"  ,  { leadingZeros :  false}); //"06.0")
toNumber("-06"); //-6)
toNumber("-06", { leadingZeros :  true}); //-6)
toNumber("-06", { leadingZeros :  false}); //"-06")

toNumber("-0.0"); //-0)
toNumber("-00.00"); //-0)
toNumber("-0.06"); //-0.06)
toNumber("-00.6"); //-0.6)
toNumber("-.006"); //-0.006)
toNumber("-6.0"); //-6)
toNumber("-06.0"); //-6)

toNumber("-0.0"   ,  { leadingZeros :  false}); //-0)
toNumber("-00.00",  { leadingZeros :  false}); //"-00.00")
toNumber("-0.06",  { leadingZeros :  false}); //-0.06)
toNumber("-00.6",  { leadingZeros :  false}); //"-00.6")
toNumber("-.006",  {leadingZeros :  false}); //-0.006)
toNumber("-6.0"  ,  { leadingZeros :  false}); //-6)
toNumber("-06.0"  ,  { leadingZeros :  false}); //"-06.0")
toNumber("420926189200190257681175017717")  ; //4.209261892001902e+29)
toNumber("000000000000000000000000017717"  ,  { leadingZeros :  false}); //"000000000000000000000000017717")
toNumber("000000000000000000000000017717"  ,  { leadingZeros :  true}); //17717)
toNumber("01.0e2"  ,  { leadingZeros :  false}); //"01.0e2")
toNumber("-01.0e2"  ,  { leadingZeros :  false}); //"-01.0e2")
toNumber("01.0e2") ; //100)
toNumber("-01.0e2") ; //-100)
toNumber("1.0e2") ; //100)

toNumber("-1.0e2") ; //-100)
toNumber("1.0e-2"); //0.01)

toNumber("+1212121212"); // 1212121212
toNumber("+1212121212", { skipLike: /\+[0-9]{10}/} )); //"+1212121212"

toNumber("１e１000", { unicode: true, infinity: "original" }); //"１e１000"
toNumber("１000", { unicode: true }); //1000
toNumber("１000", { unicode: false }); //"１000"
```

支持的选项

```js
hex: true,          //when hexadecimal string should be parsed
leadingZeros: true, //when number with leading zeros like 08 should be parsed. 0.0 is not impacted
eNotation: true,    //when number with eNotation or number parsed in eNotation should be considered
skipLike: /regex/   //when string should not be parsed when it matches the specified regular expression
infinity: "original", // "null", "infinity" (Infinity type), "string" ("Infinity" (the string literal))
unicode: false, //when number with unicode numerals should be parsed
```

# 试试别的工作

WishIn - 如果消极的想法占据了一切,你需要它  
[![](https://solothought.com/products/assets/images/wishin/YouTubeThumbnail.png)](https://play.google.com/store/apps/details?id=com.solothought.wishin)

## 常见问题

### strnum 是什么？

根据配置分析字符串到数字

### 如何安装 strnum？

在项目目录运行 npm install strnum，或使用 pnpm add / yarn add / bun add。

### strnum 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/strnum 是否存在。

### strnum 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### strnum 可以商用吗？

strnum 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### strnum 的下载量有多少？

根据 npm 官方下载统计，strnum 在 2026/10/07 – 2026/11/05 这 30 天内被下载 333,561,864 次，日均约 11,118,729 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### strnum 还在维护吗？

最新版本 2\.5\.1 发布于 2026/10/10（28 天前）；至今共发布 28 个版本，其中过去 12 个月发布了 11 个；首次发布于 2021/09/05。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

