2016-12-08 48 views
0

我有一个问题,我遇到了尝试将颜色从十六进制字符串转换为整数值。从HEX开始以0开头的十进制颜色?

我试图实现这一目标的原因是,我从JSON中读取数据,然后通过Pixi和标准Canvas元素读取十六进制值,然后为它们提供颜色。

现在这将读取并正确地将我所有的颜色,直到遇到一个有0或例如“黑”,这仅仅是由0的

parseInt("00aaa4", 16);//43684 

这将成为一个无效的号码是开始由我的画布元素读取。

parseInt("10aaa4", 16); //1092260 

是有效的,并会正常工作。 我不确定是否有解决此问题的简单解决方法。试图寻找一些NPM模块,但他们都给出了同样的问题。

感谢您的帮助。

+0

你有什么期望这个'00aaa4'转换什么时候? – Adrian

+0

那么这是我不知道它会是什么,我知道它打破了,并且当一个颜色不起作用或不能被发现时默认为pixi黑色。因此,举例来说,如果我在000000做了parseInt函数返回0。从我的理解,是不正确 – factordog

回答

2

有2种方式来标记号的类型。在将它放入一个十六进制数字之前放入0x,但使其成为八进制数字。

当您尝试转换为数字为十进制,尝试在前面加上一个0X,所以它不会被误认为八进制数。

+0

据我所知0X心不是适用于某些画布元素,我知道它的Pixi的罚款,但对于正常的印刷品吗? 或者你是说让字符串为0x?并将其转换为小数? – factordog

+0

增加16为基数,以parseInt函数,他明确地说数为十六进制 – phobia82

+1

@factordog只是做'parseInt函数( “0X” + yourColor,16)' –