NPM酷庫,天天兩分鐘,瞭解一個流行NPM庫。git
昨天,咱們瞭解瞭如何使用uuid庫快速生成UUID,UUID適用於分佈式應用中ID的生成,由於UUID足夠長,因此碰撞概率很是低。github
此外,咱們在不少時候不須要生成像UUID那麼長的字符串,而是須要可以快速生成一個隨機的複雜字符串,可能同時包含大小寫字母、數字、特殊符號等。dom
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 對象:ui
options.lettersspa
options.numberscode
options.specials對象
https://github.com/maichong/s...ci
天天瞭解一個NPM庫,一年後成爲Node.js高手