我想替换像这样的css背景网址:
body {
background: url("../common/images/nyau.jpg") center center;
}
.alma {
background: url("./vau/vau.jpg");
}
.ata {
background: url("./mak.jpg");
}
到这些:
body {
background: url("./images/nyau.jpg") center center;
}
.alma {
background: url("./images/vau.jpg");
}
.ata {
background: url("./images/mak.jpg");
}
不幸的是,我根本不熟悉正则表达式。
我知道我可以用("../common/images/nyau.jpg")
选择/\((.*?)\)/g
这个部分,但是我需要以某种方式捕捉上一个/
(nyau.jpg)中的部分。所以我可以做./images/$1
或类似的事情。
gulp-replace
的api中编辑:我只允许使用没有任何javascript功能的正则表达式。
答案 0 :(得分:1)
此功能fixPath(path)
将返回您想要的路径,然后您可以在需要修复背景时应用它。
function fixPath(path) {
return path.replace(/(.*\/)(.*)$/, "./images/$2")
// return "./images/" + path.split("/").pop()
}
// Demo Paths
var paths = ["../common/images/nyau.jpg", "./vau/vau.jpg", "./mak.jpg"]
// Do it for all paths
paths = paths.map(fixPath)
// Demo Output
document.write(JSON.stringify(paths))