栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

javascript 生成 UUID GUID 浏览器环境 NodeJS环境 纯JavaScript函数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

javascript 生成 UUID GUID 浏览器环境 NodeJS环境 纯JavaScript函数

文章目录
    • Intro
    • 浏览器控制台
    • NodeJS环境
    • 纯JavaScript函数实现

Intro

后端Java可以调用java.util.UUID.randomUUID() 生成一个随机的UUID。
可是前端JavaScript有没有自带的API用于生成UUID/GUID呢?

以下分三种情况。

  • 仅用于浏览器控制台Console Crypto.randomUUID()
  • NodeJS开发环境(可以自由使用各类开源的package) mockjs uuid
  • 任意JS环境,自己封装一个简单的JavaScript函数。
浏览器控制台
var currentUUID = window.crypto.randomUUID();
console.log(currentUUID);

其本质是利用了 Crypto 这个类。
MDN Crypto.randomUUID()

但是要注意:这是一个Web API,它依赖于浏览器环境。
也就是说,你可以在不同种类的浏览器的控制台/Console上自由使用该API来生成UUID。
要有浏览器环境!

注意浏览器兼容情况:只有IE不支持该API(又是IE)。
不过别担心,在2022-06-15以后做前端开发你都不用再担心IE浏览器的兼容性问题了:IE即将停止支持/退役

NodeJS环境

在node环境下开发,有海量的node package可以使用。这些包都可以在 https://www.npmjs.com/ 找到。
官方开源的/个人上传的,都有。比如说我就曾经上传过勇于获取随机的 useragent HTTP请求头的工具包:
https://www.npmjs.com/package/useragent-tool

我们现在的需求是:有一个方法可以返回随机的UUID/GUID。
先在 npmjs 中去找。
我就找到了两个: modejs 和 uuid 。

  • mockjs
// npm install mockjs

var Mock = require("mockjs");
var Random = Mock.Random;

var currGuid = Random.guid()
console.log(currGuid);

  • uuid https://www.npmjs.com/package/uuid

// npm i uuid

const { v4: uuidv4 } = require('uuid');
console.log(uuidv4());

纯JavaScript函数实现

如果没有现成的轮子,那就自己造一个轮子出来用!

function uuid() {
    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;
}

uuid();

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/943409.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号