博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Guid.NewGuid().ToString()生成唯一码js
阅读量:4647 次
发布时间:2019-06-09

本文共 2714 字,大约阅读时间需要 9 分钟。

Guid.NewGuid().ToString() 生成唯一码,用户生成随机id

 

 

生成唯一编码,版本控制对比等。

 

//表示全局唯一标识符 (GUID)。function Guid(g) {    var arr = new Array(); //存放32位数值的数组    if (typeof (g) == "string") { //如果构造函数的参数为字符串        InitByString(arr, g);    }    else {        InitByOther(arr);    }    //返回一个值,该值指示 Guid 的两个实例是否表示同一个值。    this.Equals = function (o) {        if (o && o.IsGuid) {            return this.ToString() == o.ToString();        }        else {            return false;        }    }    //Guid对象的标记    this.IsGuid = function () { }    //返回 Guid 类的此实例值的 String 表示形式。    this.ToString = function (format) {        if (typeof (format) == "string") {            if (format == "N" || format == "D" || format == "B" || format == "P") {                return ToStringWithFormat(arr, format);            }            else {                return ToStringWithFormat(arr, "D");            }        }        else {            return ToStringWithFormat(arr, "D");        }    }    //由字符串加载    function InitByString(arr, g) {        g = g.replace(/\{|\(|\)|\}|-/g, "");        g = g.toLowerCase();        if (g.length != 32 || g.search(/[^0-9,a-f]/i) != -1) {            InitByOther(arr);        }        else {            for (var i = 0; i < g.length; i++) {                arr.push(g[i]);            }        }    }    //由其他类型加载    function InitByOther(arr) {        var i = 32;        while (i--) {            arr.push("0");        }    }    /*    根据所提供的格式说明符,返回此 Guid 实例值的 String 表示形式。    N  32 位: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    D  由连字符分隔的 32 位数字 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx    B  括在大括号中、由连字符分隔的 32 位数字:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}    P  括在圆括号中、由连字符分隔的 32 位数字:(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)    */    function ToStringWithFormat(arr, format) {        switch (format) {            case "N":                return arr.toString().replace(/,/g, "");            case "D":                var str = arr.slice(0, 8) + "-" + arr.slice(8, 12) + "-" + arr.slice(12, 16) + "-" + arr.slice(16, 20) + "-" + arr.slice(20, 32);                str = str.replace(/,/g, "");                return str;            case "B":                var str = ToStringWithFormat(arr, "D");                str = "{" + str + "}";                return str;            case "P":                var str = ToStringWithFormat(arr, "D");                str = "(" + str + ")";                return str;            default:                return new Guid();        }    }}//Guid 类的默认实例,其值保证均为零。Guid.Empty = new Guid();//初始化 Guid 类的一个新实例。Guid.NewGuid = function () {    var g = "";    var i = 32;    while (i--) {        g += Math.floor(Math.random() * 16.0).toString(16);    }    return new Guid(g);}

 

转载于:https://www.cnblogs.com/reweb/p/4586357.html

你可能感兴趣的文章
带智能提示的百度搜索框 —— 新:支持多种浏览器
查看>>
Windows Azure Traffic Manager (1) Windows Azure Traffic Manager - 简介
查看>>
matlab buffer的使用
查看>>
Hello World!
查看>>
Struts2 执行流程
查看>>
axios(基于promise的http库)
查看>>
[NOIP2013]转圈游戏
查看>>
js 元素到指定的相对定位的父元素的距离
查看>>
ThoughtWorks.QRCode 生成QR二维码时提示“索引超出了数组界限”的原因和解决方法...
查看>>
Python 实现定时任务(sleep、Timer 、sched、APScheduler)
查看>>
linux系列(十九):firewall-cmd命令
查看>>
常用的第三方模块 chardet url
查看>>
Js中的subStr和subString的区别
查看>>
libpcap详解
查看>>
一键安装Redmine
查看>>
docker的基础命令
查看>>
软件工程第十二次作业 - 每周例行汇报
查看>>
画任意两点之间的连线
查看>>
C# 深化基本概念
查看>>
Word2Vec实现原理(Hierarchical Softmax)
查看>>