替换css背景网址

时间:2016-01-10 17:42:10

标签: javascript regex

我想替换像这样的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功能的正则表达式。

1 个答案:

答案 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))