UNPKG

@ssports_fe/ssutils

Version:
39 lines (32 loc) 1.06 kB
const getCookie = require('./getCookie'); const setCookie = require('./setCookie'); function isEmpty(str) { let ret = true; if (str && typeof (str) !== 'undefined' && str !== null && str !== 'null' && str !== 'undefined' && str !== '' && str !== '0') { ret = false; } return ret; } /** * * @desc 生成32位随机数 * @return {String} */ const getUUID = function() { let uuid = getCookie('cuuid'); if (isEmpty(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] = '-'; uuid = s.join(''); uuid = uuid.replace(/-/g, ''); setCookie('cuuid', uuid, { path: '/', expires: 365 }); } return uuid; }; module.exports = getUUID;