zoukankan      html  css  js  c++  java
  • javascript guid(uuid)

    http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript

     function generateUUID(){ var d = new Date().getTime(); var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = (d + Math.random()*16)%16 | 0; d = Math.floor(d/16); return (c=='x' ? r : (r&0x7|0x8)).toString(16); }); return uuid; };

      http://en.wikipedia.org/wiki/Globally_unique_identifier

    http://frugalcoder.us/post/2012/01/13/javascript-guid-uuid-generator.aspx

    //UUID/Guid Generator
    // use: UUID.create() or UUID.createSequential()
    // convenience:  UUID.empty, UUID.tryParse(string)
    (function(w){
      // From http://baagoe.com/en/RandomMusings/javascript/
      // Johannes Baagøe <baagoe@baagoe.com>, 2010
      function Mash() {
        var n = 0xefc8249d;
    
        var mash = function(data) {
        data = data.toString();
        for (var i = 0; i < data.length; i++) {
          n += data.charCodeAt(i);
          var h = 0.02519603282416938 * n;
          n = h >>> 0;
          h -= n;
          h *= n;
          n = h >>> 0;
          h -= n;
          n += h * 0x100000000; // 2^32
        }
        return (n >>> 0) * 2.3283064365386963e-10; // 2^-32
        };
    
        mash.version = 'Mash 0.9';
        return mash;
      }
    
      // From http://baagoe.com/en/RandomMusings/javascript/
      function Kybos() {
        return (function(args) {
        // Johannes Baagøe <baagoe@baagoe.com>, 2010
        var s0 = 0;
        var s1 = 0;
        var s2 = 0;
        var c = 1;
        var s = [];
        var k = 0;
    
        var mash = Mash();
        var s0 = mash(' ');
        var s1 = mash(' ');
        var s2 = mash(' ');
        for (var j = 0; j < 8; j++) {
          s[j] = mash(' ');
        }
    
        if (args.length == 0) {
          args = [+new Date];
        }
        for (var i = 0; i < args.length; i++) {
          s0 -= mash(args[i]);
          if (s0 < 0) {
          s0 += 1;
          }
          s1 -= mash(args[i]);
          if (s1 < 0) {
          s1 += 1;
          }
          s2 -= mash(args[i]);
          if (s2 < 0) {
          s2 += 1;
          }
          for (var j = 0; j < 8; j++) {
          s[j] -= mash(args[i]);
          if (s[j] < 0) {
            s[j] += 1;
          }
          }
        }
    
        var random = function() {
          var a = 2091639;
          k = s[k] * 8 | 0;
          var r = s[k];
          var t = a * s0 + c * 2.3283064365386963e-10; // 2^-32
          s0 = s1;
          s1 = s2;
          s2 = t - (c = t | 0);
          s[k] -= s2;
          if (s[k] < 0) {
          s[k] += 1;
          }
          return r;
        };
        random.uint32 = function() {
          return random() * 0x100000000; // 2^32
        };
        random.fract53 = function() {
          return random() +
          (random() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53
        };
        random.addNoise = function() {
          for (var i = arguments.length - 1; i >= 0; i--) {
          for (j = 0; j < 8; j++) {
            s[j] -= mash(arguments[i]);
            if (s[j] < 0) {
            s[j] += 1;
            }
          }
          }
        };
        random.version = 'Kybos 0.9';
        random.args = args;
        return random;
    
        } (Array.prototype.slice.call(arguments)));
      };
    
      var rnd = Kybos();
    
      // UUID/GUID implementation from http://frugalcoder.us/post/2012/01/13/javascript-guid-uuid-generator.aspx
      var UUID = {
        "empty": "00000000-0000-0000-0000-000000000000"
        ,"parse": function(input) {
          var ret = input.toString().trim().toLowerCase().replace(/^[s
    ]+|[{}]|[s
    ]+$/g, "");
          if ((/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/).test(ret))
            return ret;
          else
            throw new Error("Unable to parse UUID");
        }
        ,"createSequential": function() {
          var ret = new Date().valueOf().toString(16).replace("-","")
          for (;ret.length < 12; ret = "0" + ret);
          ret = ret.substr(ret.length-12,12); //only least significant part
          for (;ret.length < 32;ret += Math.floor(rnd() * 0xffffffff).toString(16));
          return [ret.substr(0,8), ret.substr(8,4), "4" + ret.substr(12,3), "89AB"[Math.floor(Math.random()*4)] + ret.substr(16,3),  ret.substr(20,12)].join("-");
        }
        ,"create": function() {
          var ret = "";
          for (;ret.length < 32;ret += Math.floor(rnd() * 0xffffffff).toString(16));
          return [ret.substr(0,8), ret.substr(8,4), "4" + ret.substr(12,3), "89AB"[Math.floor(Math.random()*4)] + ret.substr(16,3),  ret.substr(20,12)].join("-");
        }
        ,"random": function() {
          return rnd();
        }
        ,"tryParse": function(input) {
          try {
            return UUID.parse(input);
          } catch(ex) {
            return UUID.empty;
          }
        }
      };
      UUID["new"] = UUID.create;
    
      w.UUID = w.Guid = UUID;
    }(window || this));
    

      

  • 相关阅读:
    数据库字段太多,批量快速建立实体类方法(适合大量字段建立实体类)
    SQL service 中的 ”输入SQL命令窗口“ 打开了 “属性界面” 回到 ”输入SQL命令窗口“
    计算机软件编程英语词汇集锦
    编程常用英语词汇
    svn上传和下载项目
    当启动tomcat时出现tomcat setting should be set in tomcat preference page
    Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor
    eclipse中选中一个单词 其他相同的也被选中 怎么设置
    Spring Boot的@SpringBootApplication无法引入的问题
    最全的SpringCloud视频教程
  • 原文地址:https://www.cnblogs.com/bigmouthz/p/3417816.html
Copyright © 2011-2022 走看看