UNPKG

z-util-page

Version:
37 lines (36 loc) 1.04 kB
"use strict"; 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(''); }