用正则表达式结果

时间:2016-04-30 04:50:20

标签: javascript regex replace

所以我试图通过自己的修改版本找到并替换css的所有颜色值。在这种情况下,我专注于具有相同值的所有颜色代码。

用#333替换#333333。

我的代码如下:

var regex = textCssMini1.replace(/\#\d{6}/g,"$1");

我的代码允许我找到#333333并将其替换为$ 1。但是我想用#333替换它。

注意:我的字符串中存在多个颜色代码实例,例如#000000,因此我想将它应用于任何可能性。

4 个答案:

答案 0 :(得分:2)

您可以将以下正则表达式用于捕获组 replace(/#([\da-f])\1([\da-f])\2([\da-f])\3/ig, "#$1$2$3")



var textCssMini1 = '#111111 #123456 #ffffff #225588 #235588 #333333 #gggggg ( not valid color code )';

var regex = textCssMini1.replace(/#([\da-f])\1([\da-f])\2([\da-f])\3/ig, "#$1$2$3");

document.write(regex);




<强> Regex explanation

Regular expression visualization

答案 1 :(得分:1)

这是怎么回事 var regex = textCssMini1.replace(/\#(\d){6}/g,"#$1$1$1");

答案 2 :(得分:1)

这将有效

var regex = textCssMini1.replace(/#([\da-f])\1{5}/ig,"#$1$1$1");

JS Demo

&#13;
&#13;
var textCssMini1 = '#111111 #123456 #ffffff';
var regex = textCssMini1.replace(/#([\da-f])\1{5}/ig,"#$1$1$1");
document.write(regex);
&#13;
&#13;
&#13;

如果您想单独替换每个RGB

var regex = textCssMini1.replace(/#([\da-f])\1([\da-f])\2([\da-f])\3/ig,"#$1$2$3");

答案 3 :(得分:1)

这应该是你需要的:

var regex = textCssMini1.replace(/\#(.)\1(.)\2(.)\3/i,"#$1$2$3");

匹配时,如果是一个字符串,其中#chac后跟3个2个相同字符的序列,并且匹配将被char替换为3个sigle字符。

  • #225588&gt; #258(已更换)
  • #235588&gt; #235588(未更换)
  • #333333&gt; #333(已更换)

    测试:

    var tomin =document.querySelector('#tominify').innerHTML;
    
    var minified = tomin.replace(/\#(.)\1(.)\2(.)\3/ig,"#$1$2$3");
    
    document.querySelector('#minicolor').innerHTML=minified;
    Sample css to test regex minify colors:
    <p id="tominify">
    test1 {
            color: #442299;
            background-color: #442279;
    }
    
    test2 {
            color: #333333;
            background-color: #111112;
    }
    </p>
    <p id='minicolor'>
    </p>