Skip to content

Instantly share code, notes, and snippets.

@creaoy
Created February 20, 2017 12:56
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 creaoy/3813ac299bba4cdd0d7a107b4542b6e3 to your computer and use it in GitHub Desktop.
Save creaoy/3813ac299bba4cdd0d7a107b4542b6e3 to your computer and use it in GitHub Desktop.
.factory('uuid2', [function() {
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
return {
newuuid: function() {
// http://www.ietf.org/rfc/rfc4122.txt
var s = [];
var hexDigits = "0123456789abcdef";
for (var i = 0; i < 36; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
}
s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
s[8] = s[13] = s[18] = s[23] = "-";
return s.join("");
},
newguid: function() {
return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
s4() + '-' + s4() + s4() + s4();
}
}
}])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment