博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NPM酷库:string-random,生成随机字符串
阅读量:6799 次
发布时间:2019-06-26

本文共 1211 字,大约阅读时间需要 4 分钟。

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 从提供的字符生成随机结果

参考资料

欢迎关注公众号:梁兴臣

梁兴臣

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

转载地址:http://piywl.baihongyu.com/

你可能感兴趣的文章
最新前端开发面试题
查看>>
数据结构
查看>>
android.support.v4.view.NestedScrollingChild cannot be resolved
查看>>
PHP array_multisort() 函数详解 及 二维数组排序(模拟数据表记录按字段排序)
查看>>
java.util.ConcurrentModificationException异常参考解决方法
查看>>
Linux主机和VirtualBox虚拟机局域网互通
查看>>
SpringMVC之类型转换Converter
查看>>
mysql压力测试
查看>>
正则匹配基本用法与常用正则整理
查看>>
谈谈神秘的ES6——(五)解构赋值【对象篇】
查看>>
ios 的cookie处理机制
查看>>
[转]tar 打包目录时排除其中某一子目录的方法
查看>>
线程和进程的一个简单解释
查看>>
ThinkPHP 数据库查询是id大于等于
查看>>
Keytool 自签名证书
查看>>
linux常用命令
查看>>
jUnit测试
查看>>
[总结]-第四章 虚拟机性能监控与故障处理工具
查看>>
卡特兰数解释
查看>>
springboot linux下启动的脚本
查看>>