Created
July 3, 2019 03:33
-
-
Save motss/6765a0e2cf73a3b3b83a788303b6763b to your computer and use it in GitHub Desktop.
UUID v4 for browsers
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** See https://bit.ly/2gvCcqe to learn more about UUID v4 for browsers */ | |
function uuidv4() { | |
if (window.crypto && window.crypto.getRandomValues) { | |
return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c => | |
(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)); | |
} | |
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { | |
const r = Math.random() * 16 | 0; | |
const v = c == 'x' ? r : (r & 0x3 | 0x8); | |
return v.toString(16); | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment