使用js生成GUID
本文转载自: https://www.cnblogs.com/sunnycoder/archive/2010/03/08/1681124.html 作者:sunnycoder 转载请注明该声明。
本文PDF下载
使用方法:
1、 生成一个新GUID:var guid = Guid.NewGuid();
2、 生成一个所有值均为0的GUID:
a) var guid = new Guid();
b) var guid = Guid.Empty;
3、 比较两个GUID是否相等:g1.Equals(g2);
4、 获取Guid的字符串形式。其中, format为String类型的可选参数,其含义为:
a) “N”: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
b) “D” 由连字符分隔的 32 位数字 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
c) “B” 括在大括号中、由连字符分隔的 32 位数字:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
d) “P” 括在圆括号中、由连字符分隔的 32 位数字:(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
代码如下:
//表示全局唯一标识符 (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); } |
使用js生成GUID相关推荐
- JS生成 GUID 或 UUID 四种方法
全球唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) . GUID 是一种由算法生成的二进制长 ...
- JS生成UUID(GUID)
JS生成UUID(GUID) JS生成UUID(GUID) 方法1:替换方式 方法2:系统crypto.randomUUID() 注意 安装TS 方法3:uuid模块安装 使用 JS生成UUID(GU ...
- JS生成32位 guid 唯一编码
JS生成32位 guid 唯一编码 function guid() {function S4() {return (((1 + Math.random()) * 0x10000) | 0).toStr ...
- js前端生成GUID (全球唯一标识符)
js获取guid: var tid = guid(); /** *获取id */ function guid() { return 'xxxxx ...
- 生成GUID唯一值的方法汇总(dotnet/javascript/sqlserver)
一.在 .NET 中生成 1.直接用.NET Framework 提供的 Guid() 函数,此种方法使用非常广泛.GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的任何两台 ...
- javascript 实现生成GUID / UUID的多种方法
GUID(全局唯一标识符)或(UUID)通用唯一标识符是一个 16 字节的二进制值,是旨在提供某些唯一性保证的标识符. Math.Random Javascript 中使用 Math.Random() ...
- js 生成唯一uuid
全局唯一标识符(GUID,Globally Unique Identifier)也称作UUID(Universally Unique IDentifier) .GUID是一种由算法生成的二进制长度为1 ...
- JS生成唯一id方式介绍(UUID和NanoID)
记录下JS生成唯一id的方法. 1.生成uuid的方法 方法一: function guid() {return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.repl ...
- Lua生成Guid(uuid)
全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) .GUID是一种由算法生成的二进制长度为 ...
最新文章
- es springboot 不设置id_es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程详解
- [jQuery]点击某元素之外触发事件
- 周老师打酒喝光回 递归
- 谈谈OAB离线地址簿无法更新问题?(服务器是Exchange 2007和Exchange 2010)
- 深入浅出 Javascript API(二)--地图显示与基本操作
- python是一种什么类型的编程_python是什么类型的编程语言
- Cache tier使用文档
- MATLAB之fprintf
- AtCoder Beginner Contest 061(CD)
- 旭辉完成2020年销售目标:还要加码广西,却在北京违规被通报
- 给女友定时发送睡前小故事
- 计算机中央控制单元是由什么组成,电子控制单元由什么组成
- 2.1 被隐藏了的过程
- 乌龙钻白玉 白虎卧沙滩
- 考研调剂信息2020计算机专业,30所院校2020考研调剂信息汇总!马上收藏备用!...
- 2018.8.4日,直播笔记
- 网站出现403 Forbidden错误及解决方法
- 形态学处理梯度、顶帽、黑帽
- 通信原理简明教程 | 数字调制传输
- [每日一题]113:有效的数独