2013-02-16 111 views
0

嘗試將RGBA轉換爲HEX,放棄透明度。有許多方法可以將RGB轉換爲HEX,而將HEX取出RGBA最簡單的方法是簡單地丟棄alpha的內容。JS:刪除第n個元素之間的所有內容

希望把這樣的:

rgba(255,255,255,0.95)

進入這個:

rgb(255,255,255)

然後用這個: http://haacked.com/archive/2009/12/29/convert-rgb-to-hex.aspx

得到#FFFFFF

對於直接轉換也是如此,這看起來像是一個簡單的子字符串操作,目前還沒有。

回答

2

也許你正在尋找這樣的:

input.replace(/rgba\((\d+,\d+,\d+),[\d.]+\)/,"rgb($1)") 

Exlanation的正則表達式:

  • / - 字面rgba(
  • ( - - 正則表達式
  • rgba\(開始捕獲組的開始
  • \d+,\d+,\d+ - 三組數字,用逗號
  • 分離
  • ) - 多一個逗號,數字和小數點基和閉括號
  • / - - 捕獲組
  • ,[\d.]+\)的端正則表達式的端

替換:字面rgb(,捕獲的字符串字面)

爲了使這個表達式更普遍applicabl即,允許空格在規範允許它:

input.replace(/rgba\((\s*\d+\s*,\s*\d+\s*,\s*\d+\s*),\s*[\d.]+\s*\)/,"rgb($1)") 
+0

我只是想,這兩個動態,並與'「RGBA(255,255,255,0.95)」'和它沒有工作。我知道你要去哪裏,但我認爲在那裏有一個錯字。 – Wesley 2013-02-16 07:16:31

+0

@Wesley忘了小數點 – 2013-02-16 07:18:05

+0

明白了,就像一個魅力。謝謝你!你回答了我很多深夜的問題:) – Wesley 2013-02-16 07:18:30

相關問題