npm 包 numerizer 使用教程

阅读时长 4 分钟读完

介绍

在前端开发中,经常会涉及到数字的处理,而且数字的格式有时候十分复杂。比如说,有一个字符串 3.5 million,我们希望将它转化为数字 3500000。在这个情况下,我们就需要用到一个 npm 包—— numerizer。

numerizer 是一个 JavaScript 库,可以将一些表述数字的文本转化成数字。例如,将 "three hundred forty two" 转化成数字 342。

在本篇文章中,我会介绍如何安装、使用和基本的 API。

安装

你可以利用 npm 来安装 numerizer。

用法

引入

在 JavaScript 文件中,我们可以使用以下代码来引入 numerizer。

如果你是在 ES6 模块中使用 numerizer,可以这样引入。

基本使用

使用 numerizer 转化文本为数字很简单。以下是一些例子。

可选参数

numerizer 还有一个可选的参数,可以指定是否忽略不识别的数字。当不指定这个可选参数时,如果出现无法识别的数字,numerizer 会返回 NaN。

可以看到,在第二个例子中,指定了忽略不识别的数字的参数,这样 numerizer 会忽略掉 "dollars" 和 "cents",返回数字 142.5。

其他 API

numerizer 还提供了一些其他的 API,比如 reset(),用于清空已经加载的数字映射。这个 API 一般情况下不需要使用。

还有 addUnits(unitsObject),用于添加额外的数字映射。

深入了解

数字映射

在 numerizer 的设计中,有一个核心的数据结构——数字映射。数字映射将文本数字(例如 "twenty")与对应的数字值(例如 20)进行映射,因为同一个数字在不同语言或不同场景下可能有不同的表述。

这个映射是一个包含键值对的对象,其中键是文本数字,值是数字值。

在 numerizer 中,数字映射被称为 "units"。内置了两个 "units",一个是包含了 0-19 的基本数字映射,另一个是包含了 "tens" 的映射。你也可以添加你自己的 "units"。

实现原理

如果你对 numerizer 的实现感兴趣,可以去 numerizer 的 GitHub 页面 查看源代码。大致思路就是将待转化的文本数字按照空格分割,然后逐个识别并映射。可以看到,这个库非常小巧且高效,适合各种场景。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f070ef6403f2923b035bf8e

纠错
反馈