方式一

  1. function uuid() {
  2. var s = [];
  3. var hexDigits = "0123456789abcdef";
  4. for (var i = 0; i < 36; i++) {
  5. s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
  6. }
  7. s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
  8. s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
  9. s[8] = s[13] = s[18] = s[23] = "-";
  10.  
  11. var uuid = s.join("");
  12. return uuid;
  13. }

方式二

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

方式三

  1. function guid() {
  2. function S4() {
  3. return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
  4. }
  5. return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
  6. }

方式四

  1. function uuid(len, radix) {
  2. var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
  3. var uuid = [], i;
  4. radix = radix || chars.length;
  5.  
  6. if (len) {
  7. // Compact form
  8. for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random()*radix];
  9. } else {
  10. // rfc4122, version 4 form
  11. var r;
  12.  
  13. // rfc4122 requires these characters
  14. uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
  15. uuid[14] = '4';
  16.  
  17. // Fill in random data. At i==19 set the high bits of clock sequence as
  18. // per rfc4122, sec. 4.1.5
  19. for (i = 0; i < 36; i++) {
  20. if (!uuid[i]) {
  21. r = 0 | Math.random()*16;
  22. uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
  23. }
  24. }
  25. }
  26.  
  27. return uuid.join('');
  28. }

推荐使用方式四,方式四的使用范例如下:

  1. // 8 character ID (base=2)
  2. uuid(8, 2) // "01001010"
  3. // 8 character ID (base=10)
  4. uuid(8, 10) // "47473046"
  5. // 8 character ID (base=16)
  6. uuid(8, 16) // "098F4D35"

  参考http://www.jb51.net/article/40678.htm

javasript生成 uuid的几种算法分享的更多相关文章

  1. js,javascript生成 UUID的四种方法

    全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) . GUID是一种由算法生成的二进制长度 ...

  2. php 生成word的三种方式

    原文地址 http://www.jb51.net/article/97253.htm 最近工作遇到关于生成word的问题 现在总结一下生成word的三种方法. btw:好像只要是标题带PHP的貌似点击 ...

  3. PHP生成随机密码的4种方法及性能对比

    PHP生成随机密码的4种方法及性能对比 http://www.php100.com/html/it/biancheng/2015/0422/8926.html 来源:露兜博客   时间:2015-04 ...

  4. PHP生成word的三种方式

    摘要: 最近工作遇到关于生成word的问题 现在总结一下生成word的三种方法. btw:好像在博客园发表博客只要是标题带PHP的貌似点击量都不是很高(哥哥我标题还是带上PHP了),不知道为什么,估计 ...

  5. LeetCode 531----Lonely Pixel I----两种算法之间性能的比较

    Lonely Pixel I 两种算法之间的性能比较 今天参加LeetCode Weekly Contest 22,第二题 "Lonely Pixel I" 问题描述如下: Giv ...

  6. HTTPRunner实践二——参数化之生成UUID

    接口测试中,需要使用到UUID,用来生成唯一ID. 1.什么是UUID UUID是128位的全局唯一标识符,通常由32字节的字符串表示.它可以保证时间和空间的唯一性,也称为GUID,全称为:UUID ...

  7. 可笑,你竟然不知道 Java 如何生成 UUID

    先看再点赞,给自己一点思考的时间,微信搜索[沉默王二]关注这个靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有一线大厂整理的面试题,以及我的系列文章. ...

  8. php生成UUID

    UUID含义是 通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, O ...

  9. java 生成UUID

    UUID(Universally Unique Identifier)全局唯一标识符,是一个128位长的数字,一般用16进制表示. 算法的核心思想是结合机器的网卡.当地时间.一个随即数来生成UUID, ...

随机推荐

  1. I - Fire Game

    题目大意: 火焰游戏 在一个];][] = { {,},{,},{-,},{,-} };; i<M; i++)    ; j<N; j++)    {        )           ...

  2. 视频监控之VSCloud版本计划

    下个版本会加入 1.人脸检测和人脸识别功能 2. 车牌识别. https://code.google.com/p/vscloud/ 下载连接 https://sourceforge.net/proje ...

  3. Huffman编码实现电文的转码与译码

    //first thing:thanks to my teacher---chenrong      Dalian Maritime university /* 构造Huffman Tree思路: ( ...

  4. awr报告

    BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();END;/ exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ...

  5. [Farcol] Introduce

    Use the Falcor Router to create a Virtual JSON resource. In this tutorial we will use Falcor’s expre ...

  6. Swift 算法实战之路:基本语法与技巧

    Swift是苹果新推出的编程语言,也是苹果首个开源语言.相比于原来的Objective-C,Swift要更轻便和灵活.笔者最近使用Swift实践了大量的算法(绝大部分是硅谷各大公司的面试题),将心得体 ...

  7. 刨根问底:对于 self = [super init] 的思考

    对象初始化有两种方式:[class new] 与 [[class alloc] init] 对于后者,有分配和初始化的过程,alloc 从应用程序的虚拟地址空间上为该对象分配足够的内存,并且将新对象的 ...

  8. 解决下载android sdk慢的问题

    修改host文件 203.208.46.146 dl.google.com 203.208.46.146 dl-ssl.google.com 强制不使用https访问 在sdk manager里选择t ...

  9. 成为VR开发者的六个基本问题

    2016-05-31 小小CTO 未来CTO 我常被问起能否提供更多的建议,帮助其他人进入这个行业,或是做VR开发人员该怎么赚钱.我很难具体回答,因为每个人的情况都很不一样.不过还是有一些建议适用于想 ...

  10. 登录网站爬虫(保持Cookie不变)

    平时经常需要到学校的信息门户去查看课表及其他信息,于是想做一个爬虫 ,可以自动替我登录并且得到这些信息,于是今天动手写了一个爬虫: 首先登录学校的信息门户:http://cas.whu.edu.cn/ ...