封面

npm优秀库使用收集整理(长期向)

虽然自栩全沾工程师,但是对于前端圈的了解还是相对缺乏的,尤其是大量的npm包。java的maven/gradle, node的npm, swift的pod,,python的pip,php的Composer,c++的Conan等等。基本上每一种开发语言都有自己的包管理器。开源三方库汇集了全世界的智慧结晶,有了这些优秀的三方库能够让我们很容易的完成复杂的功能。所以打算开一个长期向的优秀库的使用收集博客。大部分内容是搜索到的优秀博文整理而来。

注: 本篇文章开始于2020年11月20,每次修改或新增时都会将时间更新时最新的时间,每个库的使用也会标注版本和来源。

ajv(v6.12.6)

ajv 是一个非常流行的JSON Schema验证工具,并且拥有非常出众的性能表现。下方的例子中,我们使用ajv来验证用户输入的表单数据是否合法。

const Ajv = require('ajv');

let schema = {
type: 'object',
required: ['username', 'email', 'password'],
properties: {
username: {
type: 'string',
minLength: 4
},
email: {
type: 'string',
format: 'email'
},
password: {
type: 'string',
minLength: 6
},
age: {
type: 'integer',
minimum: 0
},
sex: {
enum: ['boy', 'girl', 'secret'],
default: 'secret'
},
}
};

let ajv = new Ajv();
let validate = ajv.compile(schema);

let valid = validate(data);
if (!valid) console.log(validate.errors);

在上述代码中,我们声明了一个数据模式schema ,这个模式要求目标数据为一个对象,对象可以有五个字段 usernameemailpasswordagesex,并分别定义了五个字段的类型和数据格式要求,并且其中 usernameemailpassword 必填。然后我们使用这个模式去验证用户输入的数据 data 是否满足我们的需求。

注意:

  1. JSON Schema 是一个声明模式描述对象的标准,并非一个库

  2. ajv 是一个JSON Schema标准验证器的实现,除了ajv还有很多其他的库

  3. 代码中的 schema 是使用 JSON Schema 生成的模式描述对象

  4. 代码中 data 是我们要进行检查的数据

参考资料

JSON Schema http://json-schema.org

AJV https://github.com/epoberezkin/ajv

来源: https://segmentfault.com/a/1190000013265287

accounting(0.4.2)

accounting是用来格式化数字的库, 主要提供的方法有 formatMoney() formatColumn() formatNumber() toFixed() unformat()

接下来我们一一介绍:

formatMoney() 格式化货币

// 默认货币格式:货币符号$,保留两位小数,每千位加逗号
accounting.formatMoney(12345678); // $12,345,678.00

// 指定货币符号、保留小数位、千位间隔符
accounting.formatMoney(12345678, '¥', 2, ''); // ¥12345678.00

formatColumn() 格式化并按列对其

在制表时,formatColumn() 方法方便我们按照表格列对齐数字和货币符号:

accounting.formatColumn([123.5, 3456.615, 777888.99, -5432, -1234567, 0], "$ ");

格式化后的效果:

图片描述

formatNumber() 格式化数字

accounting.formatNumber(5318008); // 5,318,008
accounting.formatNumber(9876543.21, 3, " "); // 9 876 543.210

toFixed() 保留小数位

和JavaScript内置 Number.prototype.toFixed() 不同的是,accounting.toFixed() 有四舍五入的效果:

(0.615).toFixed(2); // "0.61"
accounting.toFixed(0.615, 2); // "0.62"

unformat() 解析数字

unformat() 方法能够从任何格式的字符串中解析出原始数字:

accounting.unformat("£ 12,345,678.90 GBP"); // 12345678.9

参考资料

http://openexchangerates.github.io/accounting.js/

https://github.com/openexchangerates/accounting.js

来源: https://segmentfault.com/a/1190000013201803

文章目录
  1. 1. ajv(v6.12.6)
  • 参考资料
    1. 1. accounting(0.4.2)
    2. 2. formatMoney() 格式化货币
    3. 3. formatColumn() 格式化并按列对其
    4. 4. formatNumber() 格式化数字
    5. 5. toFixed() 保留小数位
    6. 6. unformat() 解析数字
  • 参考资料


  • twitter分享


    如果想及时收到回复,可在 订阅中心Participating中勾选Email

    Fork me on GitHub