首页 小组 问答 话题 好文 素材 用户 唠叨 我的社区

[代码]前端UUID生成方法

天启Lv.1普通用户
2024-08-18 19:31:44
0
23

前端UUID生成方法

方法1


export function uuid(len: number = 16, radix?: number): string {
	let chars: string[] = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
	let uuid: string[] = [];
	let i: number;
	let radixS = radix || chars.length;

	if (len) {
		for (i = 0; i < len; i++) {
			uuid[i] = chars[0 | (Math.random() * radixS)];
		}
	} else {
		let r: number;
		uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
		uuid[14] = '4';
		for (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('');
}
方法二


/**
 * 生成UUID
 * @returns
 */
export const useUuid = () => {
  var s = [];
  var hexDigits = "0123456789abcdef";
  for (var 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] = "-";

  var uuid = s.join("");
  return uuid;
};
天启
天启

65 天前

签名 : 大运河向南是我家   23       0
评论
站长交流