数码资讯
Javascript实现生成GUID(全局统一标识符)
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
GUID(全球统一标识)是指在一个计算机生成的数量,以保证在同一时间和空间的所有机器都是独一无二的。通常,该平台提供的API生成的GUID的生成算法是有趣的,使用以太网卡地址、纳秒级时间,芯片ID码,和许多可能的数字。在GUID唯一的缺陷是,得到的字符串将更大。
的GUID的格式是:xxxxxxxx -xxxx-xxxx-xxxx- xxxxxxxxxxxx
我们都知道,GUID在前端的开发中没有什么用处,但是如果我们需要插入一个ID,这个ID对应于后台匹配和其他需要GUID的操作,我们仍然可以为方便而生成GUID。
一般来说,它是非常简单的产生背景数据库或数据库语言,如SQL,java,C # GUID和前端不直接生成的GUID,所以只能写一个本身,而是因为GUID需要以太网卡的地址,和纳秒时间数,获取信息的前端是比较困难的(知道的童鞋,请告诉我),我们可以模拟生成的GUID的实现,代码如下:
*
*功能:生成一个GUID码,包括GUID 14日期和超过18 16带随机数后,GUID重复一定的概率,但重复的概率是很低的,每个10ms 1 /重复概率理论(16 ^ 18),这是18次16分1重复,低到可以忽略不计的概率
*免责声明:此代码专门用于作者的学习,例如用户使用过程中由于代码问题造成的损失,这与作者无关。
*日期:2014年9月4日
*作者:Wyc
* /
函数GUID(){
this.date =新的日期();
*确定是否初始化,如果以下代码的初始化,下面的代码将不再执行,实际执行仅一次。
如果(typeof this.newguid!= 'function){
代码生成
guid.prototype.newguid =函数(){
this.date =新的日期();
无功guidstr =;
sexadecimaldate = this.hexadecimal(this.getguiddate()(),16);
sexadecimaltime = this.hexadecimal(this.getguidtime()(),16);
对于(var i = 0;i < 9;i + +){
guidstr = math.floor(数学。随机)* 16(ToString)(16);
}
guidstr = sexadecimaldate;
guidstr = sexadecimaltime;
而(guidstr.length<32){
guidstr = math.floor(数学。随机)* 16(ToString)(16);
}
返回this.formatguid(guidstr);
}
*
*函数:获取当前日期的GUID格式,即8位数字的日期:19700101
*返回值:返回GUID日期格式的字符串。
* /
guid.prototype.getguiddate =函数(){
返回this.date.getfullyear()+ this.addzero(this.date.getmonth()+ 1)+ this.addzero(this.date.getday());
}
*
*函数:获取当前时间的GUID格式,即8位数时间,包括2位数的毫秒、毫秒:12300933。
*返回值:返回GUID日期格式的字符串。
* /
guid.prototype.getguidtime =函数(){
返回this.addzero(this.date.gethours())+ this.addzero(this.date.getminutes())+ this.addzero(this.date.getseconds())+ this.addzero(parseInt(this.date.getmilliseconds() / 10))。
}
*
*函数:在一个数字的前面加上0,如果它是一个可以转换为非南方数字的字符串,也可以实现它。
*参数:参数表示准备添加0或可转换为数字的字符串的数目。
*返回值:如果符合条件,在添加0后返回字符串类型,或者返回它自己的字符串
* /
guid.prototype.addzero =功能(NUM){
如果(数(数)ToString('nan)!= 10 = 0){
返回0+ math.floor(努姆);
{人}
返回num.tostring();
}
}
*
*函数:将y的数值转换为x的数值。
*参数:第一个参数表示要转换的值;第二个参数表示要转换的十六进制;第三个参数是可选的,指示当前十六进制数,如果未写入,则为10。
*返回值:返回转换后的字符串
* /
guid.prototype.hexadecimal =功能(num,x,y){
如果(y)!=未定义的){
返回parseInt(num.tostring()()、ToString(X)Y);
{人}
返回parseInt(num.tostring())ToString(x);
}
}
*
*功能:将32位字符串格式化为GUID模式的字符串
*参数:第一个参数表示32位字符串
*返回值:标准GUID格式中的字符串
* /
guid.prototype.formatguid =功能(guidstr){
var str1 = guidstr.slice(0, 8)+-,
guidstr.slice str2 =(8, 12)+-,
guidstr.slice STR3 =(12, 16)+-,
guidstr.slice str4 =(16, 20)+-,
str5 = guidstr.slice(20);
返回str1 + + + + str5 str4 STR2 STR3;
}
}
}
GUID对象
您只需要将它保存在一个js文件中并引用它。
然后我们就需要它。
复制代码代码如下所示:
新GUID();
警报(guid.newguid());
您可以得到GUID代码。
实现原理非常简单。它只使用系统时间和超过18个十六个基本随机数。按系统时间转换为十六十六进制。所以重复的可能性是很小的,尽管重复的可能性很低。
以上方法为我生成的GUID写的,如果有更好的方法告诉我,谢谢!
的GUID的格式是:xxxxxxxx -xxxx-xxxx-xxxx- xxxxxxxxxxxx
我们都知道,GUID在前端的开发中没有什么用处,但是如果我们需要插入一个ID,这个ID对应于后台匹配和其他需要GUID的操作,我们仍然可以为方便而生成GUID。
一般来说,它是非常简单的产生背景数据库或数据库语言,如SQL,java,C # GUID和前端不直接生成的GUID,所以只能写一个本身,而是因为GUID需要以太网卡的地址,和纳秒时间数,获取信息的前端是比较困难的(知道的童鞋,请告诉我),我们可以模拟生成的GUID的实现,代码如下:
*
*功能:生成一个GUID码,包括GUID 14日期和超过18 16带随机数后,GUID重复一定的概率,但重复的概率是很低的,每个10ms 1 /重复概率理论(16 ^ 18),这是18次16分1重复,低到可以忽略不计的概率
*免责声明:此代码专门用于作者的学习,例如用户使用过程中由于代码问题造成的损失,这与作者无关。
*日期:2014年9月4日
*作者:Wyc
* /
函数GUID(){
this.date =新的日期();
*确定是否初始化,如果以下代码的初始化,下面的代码将不再执行,实际执行仅一次。
如果(typeof this.newguid!= 'function){
代码生成
guid.prototype.newguid =函数(){
this.date =新的日期();
无功guidstr =;
sexadecimaldate = this.hexadecimal(this.getguiddate()(),16);
sexadecimaltime = this.hexadecimal(this.getguidtime()(),16);
对于(var i = 0;i < 9;i + +){
guidstr = math.floor(数学。随机)* 16(ToString)(16);
}
guidstr = sexadecimaldate;
guidstr = sexadecimaltime;
而(guidstr.length<32){
guidstr = math.floor(数学。随机)* 16(ToString)(16);
}
返回this.formatguid(guidstr);
}
*
*函数:获取当前日期的GUID格式,即8位数字的日期:19700101
*返回值:返回GUID日期格式的字符串。
* /
guid.prototype.getguiddate =函数(){
返回this.date.getfullyear()+ this.addzero(this.date.getmonth()+ 1)+ this.addzero(this.date.getday());
}
*
*函数:获取当前时间的GUID格式,即8位数时间,包括2位数的毫秒、毫秒:12300933。
*返回值:返回GUID日期格式的字符串。
* /
guid.prototype.getguidtime =函数(){
返回this.addzero(this.date.gethours())+ this.addzero(this.date.getminutes())+ this.addzero(this.date.getseconds())+ this.addzero(parseInt(this.date.getmilliseconds() / 10))。
}
*
*函数:在一个数字的前面加上0,如果它是一个可以转换为非南方数字的字符串,也可以实现它。
*参数:参数表示准备添加0或可转换为数字的字符串的数目。
*返回值:如果符合条件,在添加0后返回字符串类型,或者返回它自己的字符串
* /
guid.prototype.addzero =功能(NUM){
如果(数(数)ToString('nan)!= 10 = 0){
返回0+ math.floor(努姆);
{人}
返回num.tostring();
}
}
*
*函数:将y的数值转换为x的数值。
*参数:第一个参数表示要转换的值;第二个参数表示要转换的十六进制;第三个参数是可选的,指示当前十六进制数,如果未写入,则为10。
*返回值:返回转换后的字符串
* /
guid.prototype.hexadecimal =功能(num,x,y){
如果(y)!=未定义的){
返回parseInt(num.tostring()()、ToString(X)Y);
{人}
返回parseInt(num.tostring())ToString(x);
}
}
*
*功能:将32位字符串格式化为GUID模式的字符串
*参数:第一个参数表示32位字符串
*返回值:标准GUID格式中的字符串
* /
guid.prototype.formatguid =功能(guidstr){
var str1 = guidstr.slice(0, 8)+-,
guidstr.slice str2 =(8, 12)+-,
guidstr.slice STR3 =(12, 16)+-,
guidstr.slice str4 =(16, 20)+-,
str5 = guidstr.slice(20);
返回str1 + + + + str5 str4 STR2 STR3;
}
}
}
GUID对象
您只需要将它保存在一个js文件中并引用它。
然后我们就需要它。
复制代码代码如下所示:
新GUID();
警报(guid.newguid());
您可以得到GUID代码。
实现原理非常简单。它只使用系统时间和超过18个十六个基本随机数。按系统时间转换为十六十六进制。所以重复的可能性是很小的,尽管重复的可能性很低。
以上方法为我生成的GUID写的,如果有更好的方法告诉我,谢谢!
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。