我转换了一个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而不是其他浏览器中。