本文转载自: 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相关推荐

  1. JS生成 GUID 或 UUID 四种方法

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

  2. JS生成UUID(GUID)

    JS生成UUID(GUID) JS生成UUID(GUID) 方法1:替换方式 方法2:系统crypto.randomUUID() 注意 安装TS 方法3:uuid模块安装 使用 JS生成UUID(GU ...

  3. JS生成32位 guid 唯一编码

    JS生成32位 guid 唯一编码 function guid() {function S4() {return (((1 + Math.random()) * 0x10000) | 0).toStr ...

  4. js前端生成GUID (全球唯一标识符)

    js获取guid: var tid = guid();                       /**  *获取id  */ function guid() {     return 'xxxxx ...

  5. 生成GUID唯一值的方法汇总(dotnet/javascript/sqlserver)

    一.在 .NET 中生成 1.直接用.NET Framework 提供的 Guid() 函数,此种方法使用非常广泛.GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的任何两台 ...

  6. javascript 实现生成GUID / UUID的多种方法

    GUID(全局唯一标识符)或(UUID)通用唯一标识符是一个 16 字节的二进制值,是旨在提供某些唯一性保证的标识符. Math.Random Javascript 中使用 Math.Random() ...

  7. js 生成唯一uuid

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

  8. JS生成唯一id方式介绍(UUID和NanoID)

    记录下JS生成唯一id的方法. 1.生成uuid的方法 方法一: function guid() {return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.repl ...

  9. Lua生成Guid(uuid)

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

最新文章

  1. es springboot 不设置id_es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程详解
  2. [jQuery]点击某元素之外触发事件
  3. 周老师打酒喝光回 递归
  4. 谈谈OAB离线地址簿无法更新问题?(服务器是Exchange 2007和Exchange 2010)
  5. 深入浅出 Javascript API(二)--地图显示与基本操作
  6. python是一种什么类型的编程_python是什么类型的编程语言
  7. Cache tier使用文档
  8. MATLAB之fprintf
  9. AtCoder Beginner Contest 061(CD)
  10. 旭辉完成2020年销售目标:还要加码广西,却在北京违规被通报
  11. 给女友定时发送睡前小故事
  12. 计算机中央控制单元是由什么组成,电子控制单元由什么组成
  13. 2.1 被隐藏了的过程
  14. 乌龙钻白玉 白虎卧沙滩
  15. 考研调剂信息2020计算机专业,30所院校2020考研调剂信息汇总!马上收藏备用!...
  16. 2018.8.4日,直播笔记
  17. 网站出现403 Forbidden错误及解决方法
  18. 形态学处理梯度、顶帽、黑帽
  19. 通信原理简明教程 | 数字调制传输
  20. [每日一题]113:有效的数独

热门文章

  1. CSS3属性之text-shadow和box-shadow(立体效果的实现)
  2. 点击事件div的隐藏和显示
  3. 阿里云的服务器架构是用什么软件画的?
  4. 51 个基本的机器学习面试问题和答案
  5. dropzone.js php,dropzone-js
  6. C语言,同时对多个变量同时赋值
  7. Foxmail常见退信原因
  8. Django 数据库综合运用(十四)
  9. xshell6 中文乱码的解决
  10. 掌握关键词排名技巧,用爱站工具包!