当前位置: 首页 > news >正文

JavaScript生成GUID的方法

一、生成GUID的方法一
 
 
JScript 代码    复制
function guid() {
    function S4() {
       return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
    }
    return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
}

 

二、生成GUID的方法二

 
JScript 代码    复制
function guid() {
    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);
    });
}

 

三、生成GUID的方法三

 
JScript 代码    复制
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;
}

 

四、生成GUID的方法四

 
JScript 代码    复制
function uuid(len, radix) {
    var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
    var uuid = [], i;
    radix = radix || chars.length;
    if (len) {
      // Compact form
      for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random()*radix];
    } else {
      // rfc4122, version 4 form
      var r;
      // rfc4122 requires these characters
      uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
      uuid[14] = '4';
      // Fill in random data.  At i==19 set the high bits of clock sequence as
      // per rfc4122, sec. 4.1.5
      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('');
}

相关文章:

  • 领悟得太迟
  • 关于最近WIN7系统错误711的解决办法
  • 如何重现难以重现的bug
  • tcp/ip
  • Oracle笔记 一、oracle的安装、sqlplus的使用
  • sort命令
  • linux http服务器web网页的不同安全机制
  • Object-C代码练习【复制对象的基本概念】
  • 升级Flash Builder 4.6中的Flash Player版本
  • Linux subversion服务配置
  • NLog官方文档
  • VI 命令学习指南
  • 深入理解HBase
  • 分布式缓存
  • Oracle函数
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 30秒的PHP代码片段(1)数组 - Array
  • angular组件开发
  • Apache Zeppelin在Apache Trafodion上的可视化
  • nginx 负载服务器优化
  • React 快速上手 - 07 前端路由 react-router
  • 基于axios的vue插件,让http请求更简单
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 聊聊hikari连接池的leakDetectionThreshold
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 面试遇到的一些题
  • 面试总结JavaScript篇
  • 爬虫模拟登陆 SegmentFault
  • 前言-如何学习区块链
  • 想写好前端,先练好内功
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • # C++之functional库用法整理
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #stm32驱动外设模块总结w5500模块
  • $.ajax()参数及用法
  • (1)Nginx简介和安装教程
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (k8s中)docker netty OOM问题记录
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET 4.0中的泛型协变和反变
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .netcore 获取appsettings
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @ModelAttribute注解使用
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • [ai笔记3] ai春晚观后感-谈谈ai与艺术
  • [BeginCTF]真龙之力
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [C++] 多线程编程-thread::yield()-sleep_for()
  • [C++]C++入门--引用