2012-05-27 42 views
1

我想解析輸入,並檢查輸入的彩色格式是RGBA還是HEX格式,並且還給用戶空間輸入用開關大小寫的常規顏色的顏色名稱。如何識別Javascript中的顏色?

我找到了十六進制顏色和常規顏色名稱的正則表達式,但無法找到一個用於RGBA的正則表達式。

的Javascript

function verifycolor(colorcode) { 
    var regColorcode = /^(#)?([0-9a-fA-F]{3})([0-9a-fA-F]{3})?$/; 
    if(regColorcode.test(colorcode) == false) 
    document.getElementById("status").innerHTML = "Color is not yet valid."; 
    else if(regColorcode.test(colorcode) == true) 
    document.getElementById("status").innerHTML = "You have entered a valid color code"; 
} 

的jsfiddle沒有爲我這個代碼工作。不知道原因。所以這是here

任何人都可以幫助我做同樣的RGBA顏色。如果正則表達式可以將它解析爲紅色,綠色,藍色和alpha,那將是非常好的。

回答

2

一些搜索給了我這個RGB顏色解析:

它確實正是你想要的(甚至可以輸出的顏色通道)。當然,它可以用於顏色驗證。

從描述:

接受一個字符串,並試圖找出一個 有效的顏色出來的

一個JavaScript類。一些接受輸入是例如:

  • rgb(0, 23, 255)
  • #336699
  • ffee66
  • fb0
  • red
  • darkblue
  • cadet blue

DEMO:http://www.phpied.com/files/rgbcolor/rgbcolor.html

+0

感謝您的支持。需要alpha值。我會弄清楚的。 – Katti

0
rgba\(((25[0-5])|(2[0-4]\d)|(1?\d\d)|\d)%?, *((25[0-5])|(2[0-4]\d)|(1?\d\d)|\d)%?, *((25[0-5])|(2[0-4]\d)|(1?\d\d)|\d)%?, *((25[0-5])|(2[0-4]\d)|(1?\d\d)|\d)%?\) 

這個匹配RGB()與,裏面,0和255之間的4個數字,通過,(或,<space>)分離由%符號可能遵循。當然,百分比不應該超過100%,但是它的目的就是這樣。