资讯专栏INFORMATION COLUMN

NPM酷库:string-random,生成随机字符串

weakish / 1832人阅读

摘要:只提供了用于生成随机数字,但是并未提供生成字符串的函数,要自己写生成随机字符串逻辑需要费一番周折。库专门用于快速生成随机字符串,并且可以根据需求制定字符串长度以及包含的字符。

NPM酷库,每天两分钟,了解一个流行NPM库。

昨天,我们了解了如何使用uuid库快速生成UUID,UUID适用于分布式应用中ID的生成,因为UUID足够长,所以碰撞几率非常低。

此外,我们在很多时候不需要生成像UUID那么长的字符串,而是需要能够快速生成一个随机的复杂字符串,可能同时包含大小写字母、数字、特殊符号等。

string-random

JS Core只提供了Math.random() 用于生成随机数字,但是并未提供生成字符串的函数,要自己写生成随机字符串逻辑需要费一番周折。string-random库专门用于快速生成随机字符串,并且可以根据需求制定字符串长度以及包含的字符。

const stringRandom = require("string-random");

// 生成长度为8,包含大小写字母和数字的随机字符串
random(); // oSjAbc02

// 生成长度为16,包含大小写字母和数字的随机字符串
random(16); // d9oq0A3vooaDod8X

// 包含大小写字母的随机字符串(不包含数字)
random(16, {numbers: false});  // AgfPTKheCgMvwNqX

// 包含数字的随机字符串(不包含字母)
random(16, {letters: false});  // 0889014544916637

// 包含制定字母和数字的随机字符串
random(16, {letters: "ABCDEFG"});  // 055B1627E43GA7D8

// 包含特殊字符
random(16, {specials: true}); // ,o=8l{iay>AOegW[ 
random(16, true);             // SMm,EjETKMldIM/J

// 指定字符
random(16, "01"); // 1001001001100101

random(length, options) 函数的第一个参数length为要生成的字符串长度,第二个参数是选项:

options 为true,生成包含字母、数字和特殊字符的字符串

options 为字符串,从options字符串中提供的字符生成随机结果

options 为对象

options 对象:

options.letters

true (默认) 允许大小写字母

false 不允许大小写字母

string 从提供的字符生成随机结果

options.numbers

true (默认) 允许数字

false 不允许数字

string 从提供的字符生成随机结果

options.specials

true 允许特殊字符

false (默认) 不允许特殊字符

string 从提供的字符生成随机结果

参考资料

https://github.com/maichong/s...

欢迎关注公众号:梁兴臣

每天了解一个NPM库,一年后成为Node.js高手

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92584.html

相关文章

  • NPM酷库:number-random,生成随机数字

    摘要:库就可以方便地生成指定范围的随机数字,并且支持指定生成整数或是小数。 NPM酷库,每天两分钟,了解一个流行NPM库。 昨天,我们了解到 string-random 库可以用来快速生成指定格式的随机字符串,今天我们继续学习如何生成随机的数字。 其实只需要 Math.random()就可以生成一个随机数字,但是这个数字大小是0~1,如果我们需要生成一个指定范围的随机数字,那么就需要进一步的...

    wind5o 评论0 收藏0
  • NPM酷库:uuid,生成随机ID

    摘要:酷库,每天两分钟,了解一个流行库。我们直接提供的生成器函数,就可以生成一串,由于足够长,碰撞几率非常低,所以可以广泛运用在分布式环境中的各个子系统。 NPM酷库,每天两分钟,了解一个流行NPM库。 在中心化应用中,数据记录的ID往往是数据库生成的自增ID,但是在分布式应用中,就会存在一些问题: 保存数据之前就需要给数据标识ID 数据规模超级大,中央数据库无法满足性能需求 UUID ...

    Michael_Ding 评论0 收藏0
  • NPM酷库042:ajv,JSON 模式验证

    摘要:酷库,每天两分钟,了解一个流行库。比如需要满足那些属性,每个属性都是什么类型的,这些条件称之为数据模式验证。在对数据的模式验证领域有专门的标准,叫做。就是按照标准声明一个模式对象,然后使用模式验证工具去验证目标数据。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在NPM酷库041中,我们学习了如何用validator库来验证字符串是否是Email、URL等,在开发中,除了字符串,...

    lavnFan 评论0 收藏0
  • NPM酷库050:xmlbuilder,创建XML文件

    摘要:酷库,每天两分钟,了解一个流行库。在前几期酷库中,我们介绍了操作等数据格式文件,在外部系统接口中,我们还会经常遇到格式的接口协议。本期,我们先来了解,用来创建格式文档。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在前几期NPM酷库中,我们介绍了Node.js操作JSON5、YAML、CSON、CSV等数据格式文件,在外部系统接口中,我们还会经常遇到XML格式的接口协议。从本期开...

    baukh789 评论0 收藏0
  • NPM酷库050:xmlbuilder,创建XML文件

    摘要:酷库,每天两分钟,了解一个流行库。在前几期酷库中,我们介绍了操作等数据格式文件,在外部系统接口中,我们还会经常遇到格式的接口协议。本期,我们先来了解,用来创建格式文档。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在前几期NPM酷库中,我们介绍了Node.js操作JSON5、YAML、CSON、CSV等数据格式文件,在外部系统接口中,我们还会经常遇到XML格式的接口协议。从本期开...

    taoszu 评论0 收藏0

发表评论

0条评论

weakish

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<