我是异步加载css。
@font-face{
src: url('fonts/le-havre-1_300_normal-webfont.eot');
src: url('fonts/le-havre-1_300_normal-webfont.eot?#iefix') format('embedded-opentype'),
url('fonts/le-havre-1_300_normal-webfont.woff') format('woff'),
url('fonts/le-havre-1_300_normal-webfont.ttf') format('truetype'),
url('fonts/le-havre-1_300_normal-webfont.svg#LeHavreLight') format('svg');
}
我必须动态替换路径,例如:
url(' -> url('http://www.site.com/skin/light/
我写了这个正则表达式,但它似乎只替换了第一个值。
var newCss = cssText.replace(/url\(\'(.+)\'\)/g, function(a,b){
return 'url(\''+'http://www.site.com/skin/light/' + b + '\')';
});
如何替换所有网址属性?
答案 0 :(得分:1)
也尝试使用/ m修饰符。由于字符串有多行,因此可能需要它。
/url\('([^)]+)'\)/gm
答案 1 :(得分:0)
正则表达式/url\(\'(.+?)\'\)/g
解决了问题,因为表达式.+?
不贪婪,而贪婪表达式.+
与整个匹配} 跟随字符串
(如果启用了多行):
url('fonts/le-havre-1_300_normal-webfont.eot');
src: url('fonts/le-havre-1_300_normal-webfont.eot?#iefix') format('embedded-opentype'),
url('fonts/le-havre-1_300_normal-webfont.woff') format('woff'),
url('fonts/le-havre-1_300_normal-webfont.ttf') format('truetype'),
url('fonts/le-havre-1_300_normal-webfont.svg#LeHavreLight') format('svg')
请参阅“U(PCRE_UNGREEDY)”修饰符:Pattern Modifiers @ php.net