uuid

uuid() {
let s = [];
let hexDigits = "0123456789abcdef";
for (let 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("");
}
/**
* 生成32位Guid
* @returns {string}
* @constructor
*/
static guid(prefix = "") {
let timestamp = new Date().getTime();
return prefix + 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.substr(prefix.length).replace(/[xy]/g, function (c) {
const r = (timestamp + Math.random() * 16) % 16 | 0;
timestamp = Math.floor(timestamp / 16);
return (c === 'x' ? r : (r & 3 | 8)).toString(16);
});
}

/**
* 生成随机数
* @returns {string}
* @constructor
*/
static random(length = 32) {
let timestamp = Date.now();
return new Array(length).fill("").map((item, index) => {
const random = (timestamp + Math.random() * 16) % 16 | 0;
timestamp = Math.floor(timestamp / 16);
return (index % 2 === 1 ? random : (random & 3 | 8)).toString(16);
}).join("");
}
posted @ 2021-08-09 14:04  闰土的土  阅读(104)  评论(0编辑  收藏  举报