Skip to content

AI编程自学网

ai2opencode您的编程助手

Menu
  • 网站首页
  • WordPress专栏
  • 程序员内功
  • 副业和涨工资
  • Windows11
Menu

Javascript问答之如何创建 GUID/UUID

Posted on 2021年7月30日 by ai2opencode

实战问题

如何创建 GUID/UUID?

我正在尝试在 JavaScript 中创建全局唯一标识符。我不确定所有浏览器上都有哪些例程,内置随机数生成器的“随机”和种子如何等等。

GUID / UUID 应至少为 32 个字符,并且应保持在 ASCII 范围内以避免在传递它们时出现问题。

解决方案

UUID(通用唯一标识符),也称为 GUID(全局唯一标识符),根据RFC 4122,是旨在提供某些唯一性保证的标识符。

虽然可以在几行 JavaScript 代码中实现符合 RFC 的 UUID(例如,请参阅下面的@broofa 的回答),但有几个常见的陷阱:

无效的 id 格式(UUID 必须采用“ xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx”形式,其中 x 是 [0-9, af] 之一M是 [1-5] 之一,N是 [8, 9, a 或 b]
使用低质量的随机源(例如Math.random)
因此,鼓励为生产环境编写代码的开发人员使用严格、维护良好的实现,例如uuid模块

对于符合RFC4122版本 4 的解决方案,这种单行(ish)解决方案是我能想到的最紧凑的:

function uuidv4() {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
    return v.toString(16);
  });
}

console.log(uuidv4());

Related posts:

  1. Javascript问答之 JavaScript 闭包是如何工作的?
  2. 微服务之使用 SpringBoot 构建 Rest 微服务的最佳实践
  3. Javascript问答之 如何从异步调用返回响应
  4. Javascript问答之 如何在另一个 JavaScript 文件中包含一个 JavaScript 文件?

发表评论 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

工具区

繁体中文

近期文章

  • Windows11教程大全之Windows 11到底是什么
  • Windows 11 的第一个大更新来了:2022年新增6大新功能
  • Chrome 控制台实用程序开发 之 09 monitor(function) 监视窗口对象上的所有调整大小事件
  • Chrome 控制台实用程序开发 之 08 keys(object) 监视窗口对象上的所有调整大小事件
  • Chrome 控制台实用程序开发 之 07 keys(object) 获取数组key值

近期评论

  1. J1o! - V2EX-Flutter 您应该选择哪个 IDE/编辑器?(Android Studio VS Code Intellij IDEA)发表在Flutter 您应该选择哪个IDE/编辑器?(Android Studio VS Code Intellij IDEA)
  2. 编程书籍推荐之《Think Like a Programmer: An Introduction to Creative Problem Solvin》 - AI编程自学网发表在如何解决任何编程问题

    推荐文章

    1. Javascript问答之 JavaScript 闭包是如何工作的?
    2. 微服务之使用 SpringBoot 构建 Rest 微服务的最佳实践
    3. Javascript问答之 如何从异步调用返回响应
    4. Javascript问答之 如何在另一个 JavaScript 文件中包含一个 JavaScript 文件?
    • 0经验开发
    • Access
    • adsense
    • Android
    • App开发赚钱
    • AWS云计算
    • Chrome
    • Chrome 控制台实用程序开发
    • CSS
    • CSS 基础教程
    • Flutter
    • Flutter基础
    • Flutter杂谈
    • HarmonyOS 鸿蒙
    • HarmonyOS基础
    • HTML
    • HTML基础
    • HTML技巧
    • JavaScript
    • JavaScript 基础
    • JavaScript 技巧
    • JavaScript 简介
    • JavaScript问答
    • oracle
    • oracle
    • pandas教程
    • PHP
    • PHP 杂谈
    • Python
    • Python实战
    • Python技巧
    • Python杂谈
    • SEO 技巧
    • Tiktok抖音小程序
    • UI设计
    • Web编程
    • Windows11
    • WordPress
    • WordPress 部署云主机VPS
    • WordPress 问答
    • WordPress 问答已解决
    • WordPress 问答未解决
    • WordPress使用技巧
    • WordPress插件
    • WordPress杂谈
    • WordPress盈利
    • Wordpress配置
    • WorPress建站技巧
    • 云服务推广
    • 云计算
    • 人工智能与机器学习
    • 低代码与无代码
    • 信息论基础
    • 元宇宙
    • 副业和涨工资
    • 副业技巧
    • 在线课程
    • 学习编程技巧
    • 小程序
    • 建站指南
    • 微服务架构
    • 微软
    • 思想类
    • 技术文章技巧
    • 技术潮流
    • 技能考试
    • 抖音小程序
    • 教育信息化
    • 数据库
    • 未分类
    • 程序员内功
    • 程序员装备
    • 经典书籍学习
    • 编程书籍推荐
    • 编程书籍推荐
    • 编程人生
    • 编程历史
    • 编程市场研究
    • 编程思想
    • 编程意义
    • 编程组件
    • 编程能力提高
    • 编程语言
    • 编程面试与工作
    • 腾讯云
    • 视频博主
    • 计算机科学中的数学
    • 读书笔记
    • 软件估价
    • 软考
    • 通识知识
    • 销售 API
    • 阿里云
    • 高级信息系统项目管理师
    • 高级系统架构设计师

    Discord JavaScript SpringBoot windows11 元宇宙 微服务 程序员内功 计算机视觉 问题未解决

    登录
    © 2022 AI编程自学网 | Powered by Minimalist Blog WordPress Theme