从十进制转换为十六进制时缺少前导零

时间:2018-02-07 18:53:35

标签: javascript

使用JavaScript我试图随机生成十六进制颜色代码:

var color = '#'+(Math.random()*0xFFFFFF<<0).toString(16);

这几乎可行,但有时候,如果随机生成的数字太低,代码就不会把领先的&#39; 0&#39;或者&#39; 00&#39;在十六进制代码的前面。

有没有一种简单的方法可以解决这个问题?

2 个答案:

答案 0 :(得分:1)

var color = (Math.random() * 0xFFFFFF).toString(16);
var hex = "#" + ("000000" + color).substr(-6, 6);
document.write(hex);

答案 1 :(得分:1)

您可以添加'000000'并从字符串末尾切换六个字符:

var color = '#' + ('000000' + (Math.random() * 0xFFFFFF << 0).toString(16)).slice(-6);