2010-01-04 152 views
3

我有以下代碼。Javascript匹配在IE中不起作用

function rgb2hex(rgb) { 
rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 
return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]); 
} 

似乎在FF和Chrome中可以正常工作。 IE出現'1'爲空或不是對象。 rgb值似乎確實讓它到了rgb.match。

任何想法?

Thx

+0

您傳遞此函數的值看起來像「rgb(12,34,56)」? – 2010-01-04 03:19:51

+0

我傳遞一個RGB顏色,並試圖將其轉換爲十六進制 – jason 2010-01-04 04:06:52

回答

3

在運行正則表達式之前,試着打印出rgb的內容。可能是輸入是不同的。

我假設你正在檢查dom_element.style屬性。也許IE從不首先將該屬性轉換爲rgb(r, g, b)格式。

+0

我添加了一個alert()匹配之前,它確實有一個十六進制顏色值,以便似乎確定。 – jason 2010-01-04 03:39:12

+0

是的,你是正確的,它正在轉換已經在FF和Chorme沒有。謝謝 – jason 2010-01-04 04:11:02