2010-08-29 79 views
1
var text = '#anything {behavior:url("csshover.htc");}'; //iam using " with url 
text += "#anything {background:transparent url('img.png') no-repeat;}"; //iam using ' with url 
text += "#anything {background-image:url('ok.jpg');}"; 

結果如何使用正則表達式(JavaScript)的替換CSS網址

#anything { 
    behavior:url("#"); 
} 

#anything { 
    background:transparent url('#') no-repeat; 
} 

#anything { 
    background-image:url('#'); 
} 

我怎樣才能做到這一點?

回答

3

如果您想要使用單引號獲得URL,請將#替換爲$2

var text = '#anything {behavior:url("csshover.htc");}'; //iam using " with url 
text += "#anything {background:transparent url('img.png') no-repeat;}"; //iam using ' with url 
text += "#anything {background-image:url('ok.jpg');}"; 
text = text.replace(/url\((['"])(.+?)\1\)/g, "url('#')"); 
+0

文本= text.replace(/ URL \\((['「])(。+?)\ 1 \\)/ g,」url('#')「); 謝謝,此代碼幫助我完成了我的項目 – faressoft 2010-08-29 20:07:05

+0

你的正則表達式抹去了'url()'部分,所以你只剩下'#''。 – user113716 2010-08-29 20:18:10

+0

我建議添加? (''「]之後,你也可以得到沒有引號的網址。 ''url(http://blabla.com)'.replace(/ url \((['」]?)(。+?)\ 1 \)/g,「$ 2」);' – Largo 2014-10-16 18:43:51

0

例子:http://jsfiddle.net/GcsLQ/2/

var text = '#anything {behavior:url("csshover.htc");}'; //iam using " with url 
text += "#anything {background:transparent url('img.png') no-repeat;}"; //iam using ' with url 
text += "#anything {background-image:url('ok.jpg');}"; 


text = text.replace(/url\([^)]+\)/g, 'url("#")'); 

如果你想在空間格式化爲好,這樣做:

例子:http://jsfiddle.net/GcsLQ/3/

var text = '#anything {behavior:url("csshover.htc");}'; //iam using " with url 
text += "#anything {background:transparent url('img.png') no-repeat;}"; //iam using ' with url 
text += "#anything {background-image:url('ok.jpg');}"; 


text = text.replace(/url\([^)]+\)/g, 'url("#")') 
    .replace(/{/g,'{\n\t') 
    .replace(/}/g,'\n}\n'); 

編輯:加引號到替換的網址。

0

對於其他人誰到這裏來尋找,保留兩個空白報價一個通用的解決方案:

//Test data 
var css = 'one url(two) url(\'three\') url("four") url ( five )'; 

css = css.replace(

    // Regex 
    /(url\W*\(\W*['"]?\W*)(.*?)(\W*['"]?\W*\))/g, 

    // Replacement string 
    '$1*$2*$3' 

); 

console.log(css); 

輸出

one url(*two*) url('*three*') url("*four*") url ( *five* )