2012-05-12 7 views
1

Fireworks CS6には、選択したオブジェクトのCSS3プロパティをコピーするパネルが含まれています。JavaScriptで文字列中の不確定数のrgbオカレンスを16進数に変換するにはどうすればよいですか?

しかし、コードはあまりにも冗長で面倒なので、私はそれをクリーンアップするJavaScriptで拡張機能を書いてみたいです。

rgbの値を任意の数に変換してより小さい16進法のコードに変換する方法を除いて、私は必要なものすべてを実行しました。

background: -moz-linear-gradient(50% 0% -87deg, rgb(0,0,0) 0%, rgb(0,255,64) 28%, rgb(0,177,122) 40%, rgb(0,0,255) 68%, rgb(37,37,230) 76%, rgb(153,153,153) 100%); 
background: -ms-linear-gradient(-87deg, rgb(0,0,0) 0%, rgb(0,255,64) 28%, rgb(0,177,122) 40%, rgb(0,0,255) 68%, rgb(37,37,230) 76%, rgb(153,153,153) 100%); 
background: -o-linear-gradient(-87deg, rgb(0,0,0) 0%, rgb(0,255,64) 28%, rgb(0,177,122) 40%, rgb(0,0,255) 68%, rgb(37,37,230) 76%, rgb(153,153,153) 100%); 
background: -webkit-gradient(linear,50% 0%,55% 100%, color-stop(0, rgb(0,0,0)), color-stop(0.28, rgb(0,255,64)), color-stop(0.4, rgb(0,177,122)), color-stop(0.68, rgb(0,0,255)), color-stop(0.76, rgb(37,37,230)), color-stop(1, rgb(153,153,153))); 
background: -webkit-linear-gradient(-87deg, rgb(0,0,0) 0%, rgb(0,255,64) 28%, rgb(0,177,122) 40%, rgb(0,0,255) 68%, rgb(37,37,230) 76%, rgb(153,153,153) 100%); 
background: linear-gradient(-87deg, rgb(0,0,0) 0%, rgb(0,255,64) 28%, rgb(0,177,122) 40%, rgb(0,0,255) 68%, rgb(37,37,230) 76%, rgb(153,153,153) 100%); 
border-color: rgb(198,34,221); 

は、私はすでに彼らの進同等にR、G、Bの値を変換する機能を持っていますが、私はわからない:

例えば、それは勾配を返す一般的な文字列は、これを含むことができどのように文字列をループし、rgbコンポーネントを分離するかについて、それぞれ&を変換する方法について説明します。

+2

アルファコンポーネントを含む16進数コードは、ほとんど同様に処理されません。 – DanRedux

答えて

1

この正確な構文 - rgbを3つの10進数で空白なしでキャプチャしたい場合は、string.replace(/rgb\((\d+),(\d+),(\d+)\)/g, yourFunction)を使用します。最初のパラメータはrgb()シーケンス全体であり、次の3つはR、G、B番号です。 rgb()全体を置き換えるには、新しい文字列を返す必要があります。

関連する問題