`

JS创建操作GUID(转)

    博客分类:
  • JS
阅读更多

使用方法:

1、  生成一个新GUIDvar guid = Guid.NewGuid();

2、  生成一个所有值均为0GUID

a)         var guid = new Guid();

b)         var guid = Guid.Empty;

3、  比较两个GUID是否相等:g1.Equals(g2);

4、  获取Guid的字符串形式。其中, formatString类型的可选参数,其含义为:

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()); 
}

 

分享到:
评论

相关推荐

    前端开源库-guid

    1. **GUID 生成**:库提供了生成 GUID 的方法,通常在创建新对象、记录用户操作或标识特定资源时非常有用。GUID 由16字节的二进制数据组成,通过特定算法转换成128位的数字,可以确保全球范围内不会重复。 2. **...

    JavaScript实现生成GUID(全局统一标识符)

     大家都知道GUID在前端开发中用处不大,但如果需要插入某个ID,并且这个ID与后台对应等其它需要GUID的操作时,为了方便,我们还是可以生成一个GUID的。  一般在sql、java、C#等后台或数据库语言中生成GUID都很简单...

    在ASP里面创建GUID

    在ASP(Active Server Pages)中创建GUID(全局唯一标识符)是一个常见需求,尤其是当需要确保数据的唯一性时,比如在数据库操作中作为主键使用。虽然ASP本身没有提供现成的函数来创建GUID,但我们可以通过调用COM...

    Guid.rar_Help!

    这可能涉及到字体映射、图像嵌入、CSS样式表创建等步骤。 3. **自动化工具**:有很多工具可以实现PDF到HTML的转换,如Adobe Acrobat、在线转换服务(如smallpdf、ilovepdf等)、开源项目(如PDF2HTMLEXE、PDF.js等...

    js调用窗体程序,窗体调用js

    JavaScript(简称JS)和Windows Forms(WinForm)是两种不同领域的编程技术,分别用于Web前端交互和桌面应用程序开发。在现代软件系统中,有时需要在两者之间建立通信桥梁,实现跨平台的数据交换和功能调用。本文将...

    c#创建active控件

    尽管如此,此时的控件仍然受到.NET Framework的安全模型限制,无法执行诸如与JavaScript交互、操作客户端注册表或磁盘等操作。要创建具有这些功能的ActiveX控件,我们需要利用COM互操作性并处理安全性问题。在C#中,...

    C#中如何创建COM+简单教程。

    在IT行业中,COM+(Component Object Model Plus)是一种服务组件模型,主要应用于Windows操作系统,用于构建分布式应用程序。它建立在微软的COM(组件对象模型)基础之上,提供了更高级别的服务,如事务处理、安全...

    基于MFC的ActiveX控件开发(JS传递变量数据给控件)

    在本主题“基于MFC的ActiveX控件开发(JS传递变量数据给控件)”中,我们将探讨如何使用MFC创建一个ActiveX控件,并通过JavaScript与网页进行交互,传递变量数据。 首先,你需要安装Visual Studio 2010或更高版本,...

    Unity3D中任意类型数据转换成json数据的方法2

    在Unity3D开发中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,因其轻量级、易读易写的特点,常用于存储和传输数据。本文将深入探讨如何在Unity3D中将任意类型的数据转换成JSON格式。 首先,我们...

    asp.net操作javascript-confirm返回值的两种方式_.docx

    ASP.NET 操作 JavaScript `confirm` 返回值主要用于在用户交互时增加确认提示,通常在执行重要操作之前,如删除数据或更改重要设置。`confirm` 函数会弹出一个带有“确定”和“取消”按钮的对话框,用户的选择可以...

    jstree创建无限分级树的方法【基于ajax动态创建子节点】

    jstree是一款强大的JavaScript库,专门用于创建交互式的树型结构。在本文中,我们将探讨如何使用jstree和AJAX动态地构建无限分级的树形菜单。首先,我们需要了解基本的数据库设计和数据获取方法。 数据库表结构是...

    c#创建active控件code

    总的来说,C#创建ActiveX控件涉及到.NET Framework与COM的交互,这需要理解COM原理和.NET互操作性机制。通过以上步骤,你可以创建一个功能丰富的ActiveX控件,然后在多样的应用程序中复用和扩展功能。然而,随着Web...

    C#版ActiveX + JS +Flex通讯 完整实现

    6:在ReadICCardActiveX 控件里,添加一個GUID,可以使用 工具-创建GUID 菜单创建一个GUID 7:为了让ActiveX控件获得客户端的信任,控件类还需要实现一个名为“IObjectSafety”的接口。先创建该接口(注意,不能...

    js调用ocx

    JavaScript(简称JS)是一种广泛用于Web开发的轻量级脚本语言,而OCX(Object Linking and Embedding, Control eXtension)是微软在Windows操作系统上的一种控件技术,用于创建可重用的软件组件。这篇博客“js调用...

    javascript十个最常用的自定义函数.pdf

    由于不同的浏览器对于事件绑定的支持存在差异,因此需要一个兼容性良好的方法来统一处理这些事件绑定操作。 #### 三、Scott Andrew 的 `addEvent` 实现 Scott Andrew 的 `addEvent` 函数是一个非常流行的版本,它...

    iWidget programming guid

    - **基本操作**: - 创建iWidget的基本步骤。 - 将iWidget嵌入到网页中的方法。 #### 三、开发环境搭建与运行 - **硬件与软件需求**:列出开发iWidget所需的最低硬件配置和必需的软件版本。 - **开发环境设置**:...

    library_vs2013

    本篇将详细探讨“library_vs2013”这个库,它专为VS2013应用程序开发设计,包含了多种关键功能,如JSON文件操作、文件与目录管理、GUID生成、日志记录以及数据库和编码转换操作。 首先,JSON(JavaScript Object ...

    node.js简单的实现http摘要验证

    此外,`http.js`可能包含了处理HTTP请求的辅助函数,`utils.js`可能是包含通用工具函数的模块,例如字符串操作、日期处理等。`guid.js`可能用于生成全局唯一标识符,虽然在HTTP摘要认证中不是必需的,但在某些情况下...

    前端项目-backbone-localstorage.js.zip

    `Backbone.js` 是一个流行的JavaScript库,它提供了MVC(Model-View-Controller)架构来帮助组织前端代码。在这个场景中,我们关注的是一个名为"前端项目-backbone-localstorage.js.zip"的压缩包,它包含了使用`...

    component:JavaScript 组件(简单类库)

    本项目“Simple Demo for JS component”提供了一些基础的JavaScript组件示例,包括日历组件、GUID类库、cookie组件以及提示信息和遮罩效果的演示。 1. **日历组件**: 日历组件是网页应用中常见的一种UI元素,...

Global site tag (gtag.js) - Google Analytics