JS生成UUID的多种方式

UUID 是 通用唯一识别码 (Universally Unique Identifier)的缩写.其作用是让分布式系统中的所有元素,都能拥有唯一的辨识信息.目前最广泛的,是微软的全局唯一标识符(GUID).

通常,我们一般使用的UUID是个36位的字符串,其格式如下:

xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx

其中第15位数是4,第20位是8b这4个中的一个

方法1:
function UUID(){
  let str = '0123456789abcdef'
  let arr = []
  for(let i = 0; i < 36; i++){
    arr.push(str.substr(Math.floor(Math.random() * 0x10), 1))
  }
  arr[14] = 4;
  arr[19] = str.substr(arr[19] & 0x3 | 0x8, 1)
  arr[8] = arr[13] = arr[18] = arr[23] = '-'
  return arr.join('')
}
方法2:

URL.createObjectURL静态方法会创建一个DOMString,其中包含一个表示参数中给出的对象的URL. DOMString是一个UTF-16字符串.
其中返回的URL中有一段36位的字符串,且符合UUID的格式.

function UUID(){
  let str = URL.createObjectURL(new Blob())
  URL.revokeObjectURL(str)
  return str.split('/')[1]
}
方法3:

先设置好UUID的格式,使用正则表达式进行替换

function UUID(){
  let str = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
  return str.replace(/[xy]/g, item => {
    const r =Math.random() * 0x10 | 0
    const v = item === 'x' ? r : (r & 0x3 | 0x8)
    return v.toString(0x10)
  })
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值