How to generate short uid like “aX4j9Z” (in JS)

前端 未结 10 1574
鱼传尺愫
鱼传尺愫 2020-12-12 14:47

For my web application (in JavaScript) I want to generate short guids (for different objects - that are actually different types - strings and arrays of strings)

I w

10条回答
  •  独厮守ぢ
    2020-12-12 15:26

    Update 08/2020:

    shortid has been deprecated in favor of nanoid which is smaller and faster:

    • Small. 108 bytes (minified and gzipped). No dependencies. Size Limit controls the size.
    • Fast. It is 40% faster than UUID.
    • Safe. It uses cryptographically strong random APIs. Can be used in clusters.
    • Compact. It uses a larger alphabet than UUID (A-Za-z0-9_-). So ID size was reduced from 36 to 21 symbols.
    • Portable. Nano ID was ported to 14 programming languages.
    import { nanoid } from 'nanoid'
    
    // 21 characters (default)
    // ~149 billion years needed, in order to have a 1% probability of at least one collision.
    console.log(nanoid()) //=> "V1StGXR8_Z5jdHi6B-myT"
    
    // 11 characters
    // ~139 years needed, in order to have a 1% probability of at least one collision.
    console.log(nanoid(11)) //=> "bdkjNOkq9PO"
    

    More info here : https://zelark.github.io/nano-id-cc/


    Old answer

    There is also an awesome npm package for this : shortid

    Amazingly short non-sequential url-friendly unique id generator.

    ShortId creates amazingly short non-sequential url-friendly unique ids. Perfect for url shorteners, MongoDB and Redis ids, and any other id users might see.

    • By default 7-14 url-friendly characters: A-Z, a-z, 0-9, _-
    • Non-sequential so they are not predictable.
    • Supports cluster (automatically), custom seeds, custom alphabet.
    • Can generate any number of ids without duplicates, even millions per day.
    • Perfect for games, especially if you are concerned about cheating so you don't want an easily guessable id.
    • Apps can be restarted any number of times without any chance of repeating an id.
    • Popular replacement for Mongo ID/Mongoose ID.
    • Works in Node, io.js, and web browsers.
    • Includes Mocha tests.

    Usage

    var shortid = require('shortid');
    console.log(shortid.generate()); //PPBqWA9
    

提交回复
热议问题