JavaScript获取GUID函数

本文介绍了三种生成全局唯一标识符(GUID)的JavaScript函数,包括基于时间随机数、随机字符串组合及正则表达式的版本,并展示了它们在实际中的生成结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目需要获取GUID,在网上搜索了一些,经验证测试可用的三个版本,如下:

function getGuid() {

  var guid = "";

  var prefix11 = ""; //基于时间产生的随机数



  var d = new Date();

  var x = Math.random(); //获取一个0~1之间的随机数

  var y = d.getTime(); //返回 1970 年 1 月 1 日至今的毫秒数

  if (x < 0.1) x += 0.1;

  //根据当前日期,产生GUID的前11位,避免GUID重复,引入一个随机数

  prefix11 = Math.round(x * y * 10).toString(16);

  guid += prefix11.substring(0, 8);

  guid += "-";

  guid += prefix11.substring(8, 11);

  //后面的数据位,完全采用随机数产生

  for (var i = 12; i <= 32; i++) {

    var g = Math.floor(Math.random() * 16).toString(16);

    guid += g;

    if (i == 12 || i == 16 || i == 20) {

      guid += "-";

    }

  }

  return guid.toUpperCase();

}
function getGuid() {//修订的另外一个版本
  var guid = "";
  for (var i = 1; i <= 32; i++) {
    var g = Math.floor(Math.random() * 16).toString(16);
    guid += g;
    if (i == 8 || i == 12 || i == 16 || i == 20) {
      guid += "-";
    }
  }
  return guid.toUpperCase();
}
function guid() {
  //版本三,正则表达式和箭头函数。
  return "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".replace(/[x]/g, () =>
    Math.floor(Math.random() * 16)
      .toString(16)
      .toUpperCase()
  );
}

三个版本均可用,经测试,GUID生成格式如下:

  'A3A01DF0-111B-A4F7-8550-81230875763D',
  'AC662074-1712-7506-CC25-A04317C791B5',
  'ADFAC19B-BCDA-0202-232B-B4D4482D486F',
  'DF7CB7C7-94F5-3766-9FA0-EB7F60C9BA76',
  'A83E7C86-C3A2-219A-08D2-7732579849D7',
  '5FB16F42-079E-56B8-77DD-5B042B09D7BC',
  '27104E7F-C4C0-85B6-DC0E-91185B85D69F',
  'DAE4059A-6734-42D1-0F0C-B5FE8AEA18CF',
  '8AC779B1-F484-CE34-3BD4-1D1F28F3E923'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值