"^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$";
意思是:以#開(kāi)頭,后面是數(shù)字和a-f的字符(大寫(xiě)或小寫(xiě)),這個(gè)值是6位或3位。要匹配一個(gè)3為是為了符合css顏色的簡(jiǎn)寫(xiě)規(guī)則:
"#abc"=="#aabbcc"
注意:如果需要進(jìn)行16位和10位的轉(zhuǎn)換,比如將顏色值轉(zhuǎn)成int存在數(shù)據(jù)庫(kù),如果是6位的顏色沒(méi)問(wèn)題,如果是3位的顏色就有問(wèn)題了,因?yàn)楫?dāng)你取回來(lái)從10進(jìn)制轉(zhuǎn)為
16進(jìn)制的時(shí)候,你不知道他應(yīng)該是3位還是6位。
比如:#0000ff==轉(zhuǎn)10進(jìn)制==>255。如果是轉(zhuǎn)回來(lái)呢:255==轉(zhuǎn)16進(jìn)制==>ff,如果你知道是6位你可以自己加上“#0000”就變成“#0000ff”,如果是三位就變成“#0ff”
因此,如果是需要轉(zhuǎn)10進(jìn)制保存的情況下,不應(yīng)該讓3位的顏色值存在,或者應(yīng)該在保存之前給他統(tǒng)一轉(zhuǎn)成6位的顏色值再轉(zhuǎn)10進(jìn)制。
以上這篇判斷顏色是否合法的正則表達(dá)式(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持VeVb武林網(wǎng)。
新聞熱點(diǎn)
疑難解答