NPM酷庫:string-random,生成隨機字符串

NPM酷庫,天天兩分鐘,瞭解一個流行NPM庫。git

昨天,咱們瞭解瞭如何使用uuid庫快速生成UUID,UUID適用於分佈式應用中ID的生成,由於UUID足夠長,因此碰撞概率很是低。github

此外,咱們在不少時候不須要生成像UUID那麼長的字符串,而是須要可以快速生成一個隨機的複雜字符串,可能同時包含大小寫字母、數字、特殊符號等。dom

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 對象:ui

  • options.lettersspa

    • true (默認) 容許大小寫字母
    • false 不容許大小寫字母
    • string 從提供的字符生成隨機結果
  • options.numberscode

    • true (默認) 容許數字
    • false 不容許數字
    • string 從提供的字符生成隨機結果
  • options.specials對象

    • true 容許特殊字符
    • false (默認) 不容許特殊字符
    • string 從提供的字符生成隨機結果

參考資料

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

歡迎關注公衆號:梁興臣

梁興臣

天天瞭解一個NPM庫,一年後成爲Node.js高手

相關文章
相關標籤/搜索