js/jquery生成uuid

msyndra 2014-11-15

Math.uuid = (function() {
  // Private array of chars to use
  var CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split(''); 
return function (len, radix) {
    var chars = CHARS, uuid = [], rnd = Math.random;
    radix = radix || chars.length;
if (len) {
      // Compact form

      for (var i = 0; i < len; i++) uuid[i] = chars[0 | rnd()*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 (var i = 0; i < 36; i++) {
        if (!uuid[i]) {
          r = 0 | rnd()*16;
          uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r & 0xf];
        }
      }
    }
return uuid.join('');
  };
})();
// Deprecated - only here for backward compatability
var randomUUID = Math.uuid;
function generateUUID()
{
  return Math.uuid();
}

相关推荐