Javascript在IE中生成一个简短的guid - toString()奇怪的行为

时间:2015-11-26 14:52:07

标签: javascript internet-explorer browser tostring

我转换了一个guid,然后我用parseInt()将其转换为16,然后我显示它以生成一个简短的guid。

它在Chrome和FireFox中运行正常,但在IE中却没有。

以下是代码:

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>")
}

这是guid32()的实施。

这是测试的小提琴:https://jsfiddle.net/domwu51r/

为什么它在IE中有所不同,我该如何解决?

我猜测toString()在IE中的实现与Chrome和FireFox不同。

如何将生成的guid保持为科学记数法?

------------------------------ EDIT ------------- --------------------

另一个给出的答案并没有帮助我解决问题。我已经在使用toString(36)了,所以对我的问题来说,这不是一个好的答案。此外,它没有解释为什么它只发生在IE而不是其他浏览器中。

0 个答案:

没有答案