Skip to content

Instantly share code, notes, and snippets.

@firedfox
Created July 11, 2018 06:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save firedfox/2cfe8ea9750f76e4553e21aa955424c3 to your computer and use it in GitHub Desktop.
Save firedfox/2cfe8ea9750f76e4553e21aa955424c3 to your computer and use it in GitHub Desktop.
generate UUID
/**
* 获取一个随机的uint8
*
* @return {number} 随机数
*/
const getRandomUint8 = () =>
(typeof crypto !== 'undefined' && crypto.getRandomValues
? crypto.getRandomValues(new Uint8Array(1))[0]
: Math.floor(Math.random() * 0xff));
/**
* 获取用户id
* 按UUID v4规范生成用户id,去掉了规范中的4个短横线,变成32个字符长度
* 参考文档 https://gist.github.com/jed/982883
*
* @return {string} 用户id
*/
const getUUID = () =>
([1e7] + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>
(c ^ getRandomUint8() & 15 >> c / 4).toString(16));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment