/**
* 生成指定长度的 UUID
* @author zhongjyuan
* @email zhognjyuan@outlook.com
* @website http://zhongjyuan.club
* @date 2023年7月13日11:42:16
* @param {number} len UUID 的长度,默认为 36
* @param {boolean} removeDash 是否移除连字符,默认为 false
* @returns {string} 生成的 UUID
*/
uuid: function (len = 36, removeDash = false) {
// 获取当前时间的毫秒数
var d = new Date().getTime();
// 定义模板字符串
var result = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
// 生成随机数
var r = (d + Math.random() * 16) % 16 | 0;
d = Math.floor(d / 16);
// 根据模板替换字符
return (c == "x" ? r : (r & 0x3) | 0x8).toString(16);
});
// 如果需要移除连字符,则将连字符替换为空字符串
if (removeDash) {
result = result.replace(/-/g, "");
}
// 返回指定长度的 UUID
zhongjyuan.logger.trace("[helper] uuid(${0}, ${1}) => ${2}", len, removeDash, result.substring(0, len));
return result.substring(0, len);
},

本文由 mdnice 多平台发布