Javascript在IE中生成短guid-toString()奇怪行为
我正在转换一个guid,然后用parseInt()在base 16中转换它,然后显示它以生成一个短guid 它在Chrome和FireFox中运行良好,但在IE中却不行 代码如下:Javascript在IE中生成短guid-toString()奇怪行为,javascript,internet-explorer,browser,tostring,Javascript,Internet Explorer,Browser,Tostring,我正在转换一个guid,然后用parseInt()在base 16中转换它,然后显示它以生成一个短guid 它在Chrome和FireFox中运行良好,但在IE中却不行 代码如下: var guid32 = function () { "use strict"; return "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g, function (c) { var r = Math.random() * 16 |
var guid32 = function () {
"use strict";
return "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g, function (c) {
var r = Math.random() * 16 | 0, v = c === "x" ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
};
var shortGuid = function () {
"use strict";
return parseInt(guid32(),16).toString(36);
};
for(var i =0; i < 100; i++)
{
$("#guids").append("<p>"+ shortGuid() +"</p>")
}
var guid32=函数(){
“严格使用”;
返回“XXXXXXXXXX 4XXXXXXXXXXXXXXXXXXXXX”。替换(/[xy]/g,函数(c){
var r=Math.random()*16 | 0,v=c==“x”?r:(r&0x3 | 0x8);
返回v.toString(16);
});
};
var shortGuid=函数(){
“严格使用”;
返回parseInt(guid32(),16).toString(36);
};
对于(变量i=0;i<100;i++)
{
$(“#guids”).append(“”+shortGuid()+””)
}
下面是实现
下面是要测试的小提琴:
为什么IE中的问题不同?我如何解决
我猜IE中toString()的实现与Chrome和FireFox不同
如何保持生成的guid不包含科学符号
------------------------------------编辑--------------------
另一个给出的答案不能帮助我解决这个问题。我已经在使用toString(36),所以这不是我问题的好答案。此外,它并没有解释为什么它只发生在IE中,而不发生在其他浏览器中。1)“不工作”是什么意思?;2) 在不了解GUID细节的情况下,我个人怀疑您生成的东西是否是“GUID”。您只需使用Javascript Math.random函数。这些数字如何保证或至少“很可能”是“全球唯一的”?1)你在3个浏览器中运行过小提琴吗?它没有像chrome和firefox那样给出预期的结果2)我生成了100万个短guid,而且它没有冲突,所以它足够满足我的需要…这将回答你的问题:是的,但这正是我正在做的,我正在使用toString(36)。它不仅在IE中起作用。复制到