使用方法:
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); } |
转自:http://www.cnblogs.com/sunnycoder/archive/2010/03/08/1681124.html
简单写法:
//生成随机guid数 function getGuidGenerator() { var S4 = function() { return (((1+Math.random())*0x10000)|0).toString(16).substring(1); }; return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4()); }
相关推荐
1. **GUID 生成**:库提供了生成 GUID 的方法,通常在创建新对象、记录用户操作或标识特定资源时非常有用。GUID 由16字节的二进制数据组成,通过特定算法转换成128位的数字,可以确保全球范围内不会重复。 2. **...
大家都知道GUID在前端开发中用处不大,但如果需要插入某个ID,并且这个ID与后台对应等其它需要GUID的操作时,为了方便,我们还是可以生成一个GUID的。 一般在sql、java、C#等后台或数据库语言中生成GUID都很简单...
在ASP(Active Server Pages)中创建GUID(全局唯一标识符)是一个常见需求,尤其是当需要确保数据的唯一性时,比如在数据库操作中作为主键使用。虽然ASP本身没有提供现成的函数来创建GUID,但我们可以通过调用COM...
这可能涉及到字体映射、图像嵌入、CSS样式表创建等步骤。 3. **自动化工具**:有很多工具可以实现PDF到HTML的转换,如Adobe Acrobat、在线转换服务(如smallpdf、ilovepdf等)、开源项目(如PDF2HTMLEXE、PDF.js等...
JavaScript(简称JS)和Windows Forms(WinForm)是两种不同领域的编程技术,分别用于Web前端交互和桌面应用程序开发。在现代软件系统中,有时需要在两者之间建立通信桥梁,实现跨平台的数据交换和功能调用。本文将...
尽管如此,此时的控件仍然受到.NET Framework的安全模型限制,无法执行诸如与JavaScript交互、操作客户端注册表或磁盘等操作。要创建具有这些功能的ActiveX控件,我们需要利用COM互操作性并处理安全性问题。在C#中,...
在IT行业中,COM+(Component Object Model Plus)是一种服务组件模型,主要应用于Windows操作系统,用于构建分布式应用程序。它建立在微软的COM(组件对象模型)基础之上,提供了更高级别的服务,如事务处理、安全...
在本主题“基于MFC的ActiveX控件开发(JS传递变量数据给控件)”中,我们将探讨如何使用MFC创建一个ActiveX控件,并通过JavaScript与网页进行交互,传递变量数据。 首先,你需要安装Visual Studio 2010或更高版本,...
在Unity3D开发中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,因其轻量级、易读易写的特点,常用于存储和传输数据。本文将深入探讨如何在Unity3D中将任意类型的数据转换成JSON格式。 首先,我们...
ASP.NET 操作 JavaScript `confirm` 返回值主要用于在用户交互时增加确认提示,通常在执行重要操作之前,如删除数据或更改重要设置。`confirm` 函数会弹出一个带有“确定”和“取消”按钮的对话框,用户的选择可以...
jstree是一款强大的JavaScript库,专门用于创建交互式的树型结构。在本文中,我们将探讨如何使用jstree和AJAX动态地构建无限分级的树形菜单。首先,我们需要了解基本的数据库设计和数据获取方法。 数据库表结构是...
总的来说,C#创建ActiveX控件涉及到.NET Framework与COM的交互,这需要理解COM原理和.NET互操作性机制。通过以上步骤,你可以创建一个功能丰富的ActiveX控件,然后在多样的应用程序中复用和扩展功能。然而,随着Web...
6:在ReadICCardActiveX 控件里,添加一個GUID,可以使用 工具-创建GUID 菜单创建一个GUID 7:为了让ActiveX控件获得客户端的信任,控件类还需要实现一个名为“IObjectSafety”的接口。先创建该接口(注意,不能...
JavaScript(简称JS)是一种广泛用于Web开发的轻量级脚本语言,而OCX(Object Linking and Embedding, Control eXtension)是微软在Windows操作系统上的一种控件技术,用于创建可重用的软件组件。这篇博客“js调用...
由于不同的浏览器对于事件绑定的支持存在差异,因此需要一个兼容性良好的方法来统一处理这些事件绑定操作。 #### 三、Scott Andrew 的 `addEvent` 实现 Scott Andrew 的 `addEvent` 函数是一个非常流行的版本,它...
- **基本操作**: - 创建iWidget的基本步骤。 - 将iWidget嵌入到网页中的方法。 #### 三、开发环境搭建与运行 - **硬件与软件需求**:列出开发iWidget所需的最低硬件配置和必需的软件版本。 - **开发环境设置**:...
本篇将详细探讨“library_vs2013”这个库,它专为VS2013应用程序开发设计,包含了多种关键功能,如JSON文件操作、文件与目录管理、GUID生成、日志记录以及数据库和编码转换操作。 首先,JSON(JavaScript Object ...
此外,`http.js`可能包含了处理HTTP请求的辅助函数,`utils.js`可能是包含通用工具函数的模块,例如字符串操作、日期处理等。`guid.js`可能用于生成全局唯一标识符,虽然在HTTP摘要认证中不是必需的,但在某些情况下...
`Backbone.js` 是一个流行的JavaScript库,它提供了MVC(Model-View-Controller)架构来帮助组织前端代码。在这个场景中,我们关注的是一个名为"前端项目-backbone-localstorage.js.zip"的压缩包,它包含了使用`...
本项目“Simple Demo for JS component”提供了一些基础的JavaScript组件示例,包括日历组件、GUID类库、cookie组件以及提示信息和遮罩效果的演示。 1. **日历组件**: 日历组件是网页应用中常见的一种UI元素,...