z-util-page
Version:
37 lines (36 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateUUID = generateUUID;
/**
* 生成UUID4
* @category 辅助函数
* @example
* ```ts
* generateUUID();
* generateUUID(12, 32);
* ```
* @param length 生成uuid的总长度,不传递则按照rfc4122标准生成uuid
* @param radix uuid每个字符的基数 1-62
* @returns uuid字符串
*/
function generateUUID(length, radix) {
let chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
let uuid = [];
radix = radix || chars.length;
if (length) {
for (let i = 0; i < length; i++)
uuid[i] = chars[0 | Math.random() * radix];
}
else {
let r;
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
uuid[14] = '4';
for (let i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | Math.random() * 16;
uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
}
}
}
return uuid.join('');
}