Gus*_*tav 55 uuid guid typescript
有没有人知道TypeScript中的一个好的,可靠的C#实现GUID(UUID)?
可以自己做,但想到如果其他人以前做过,我会节省时间.
Fen*_*ton 123
我的TypeScript实用程序中有一个基于JavaScript GUID生成器的实现.
这是代码:
class Guid {
static newGuid() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0,
v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
}
// Example of a bunch of GUIDs
for (var i = 0; i < 100; i++) {
var id = Guid.newGuid();
console.log(id);
}Run Code Online (Sandbox Code Playgroud)
请注意以下事项:
C#GUID保证是唯一的.这种解决方案很可能是独一无二的."非常可能"和"保证"之间存在巨大差距,您不希望陷入这种差距.
JavaScript生成的GUID非常适合用作等待服务器响应时使用的临时密钥,但我不一定将它们视为数据库中的主键.如果您打算依赖JavaScript生成的GUID,我很想在每次创建GUID时检查一个寄存器,以确保您没有重复(在某些情况下,Chrome浏览器中出现了一个问题) ).
小智 11
我找到了这个https://typescriptbcl.codeplex.com/SourceControl/latest
这是他们拥有的Guid版本,以防链接以后不起作用.
module System {
export class Guid {
constructor (public guid: string) {
this._guid = guid;
}
private _guid: string;
public ToString(): string {
return this.guid;
}
// Static member
static MakeNew(): Guid {
var result: string;
var i: string;
var j: number;
result = "";
for (j = 0; j < 32; j++) {
if (j == 8 || j == 12 || j == 16 || j == 20)
result = result + '-';
i = Math.floor(Math.random() * 16).toString(16).toUpperCase();
result = result + i;
}
return new Guid(result);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
79798 次 |
| 最近记录: |