摘要:只提供了用于生成随机数字,但是并未提供生成字符串的函数,要自己写生成随机字符串逻辑需要费一番周折。库专门用于快速生成随机字符串,并且可以根据需求制定字符串长度以及包含的字符。
NPM酷库,每天两分钟,了解一个流行NPM库。
昨天,我们了解了如何使用uuid库快速生成UUID,UUID适用于分布式应用中ID的生成,因为UUID足够长,所以碰撞几率非常低。
此外,我们在很多时候不需要生成像UUID那么长的字符串,而是需要能够快速生成一个随机的复杂字符串,可能同时包含大小写字母、数字、特殊符号等。
string-randomJS 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酷库,每天两分钟,了解一个流行NPM库。 昨天,我们了解到 string-random 库可以用来快速生成指定格式的随机字符串,今天我们继续学习如何生成随机的数字。 其实只需要 Math.random()就可以生成一个随机数字,但是这个数字大小是0~1,如果我们需要生成一个指定范围的随机数字,那么就需要进一步的...
摘要:酷库,每天两分钟,了解一个流行库。我们直接提供的生成器函数,就可以生成一串,由于足够长,碰撞几率非常低,所以可以广泛运用在分布式环境中的各个子系统。 NPM酷库,每天两分钟,了解一个流行NPM库。 在中心化应用中,数据记录的ID往往是数据库生成的自增ID,但是在分布式应用中,就会存在一些问题: 保存数据之前就需要给数据标识ID 数据规模超级大,中央数据库无法满足性能需求 UUID ...
摘要:酷库,每天两分钟,了解一个流行库。比如需要满足那些属性,每个属性都是什么类型的,这些条件称之为数据模式验证。在对数据的模式验证领域有专门的标准,叫做。就是按照标准声明一个模式对象,然后使用模式验证工具去验证目标数据。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在NPM酷库041中,我们学习了如何用validator库来验证字符串是否是Email、URL等,在开发中,除了字符串,...
摘要:酷库,每天两分钟,了解一个流行库。在前几期酷库中,我们介绍了操作等数据格式文件,在外部系统接口中,我们还会经常遇到格式的接口协议。本期,我们先来了解,用来创建格式文档。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在前几期NPM酷库中,我们介绍了Node.js操作JSON5、YAML、CSON、CSV等数据格式文件,在外部系统接口中,我们还会经常遇到XML格式的接口协议。从本期开...
摘要:酷库,每天两分钟,了解一个流行库。在前几期酷库中,我们介绍了操作等数据格式文件,在外部系统接口中,我们还会经常遇到格式的接口协议。本期,我们先来了解,用来创建格式文档。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在前几期NPM酷库中,我们介绍了Node.js操作JSON5、YAML、CSON、CSV等数据格式文件,在外部系统接口中,我们还会经常遇到XML格式的接口协议。从本期开...
阅读 3051·2023-04-26 01:58
阅读 927·2021-11-24 09:38
阅读 3256·2021-09-03 10:29
阅读 691·2021-08-21 14:10
阅读 1469·2019-08-30 15:44
阅读 3049·2019-08-30 14:10
阅读 3162·2019-08-29 16:32
阅读 1444·2019-08-29 12:48