Javascript—查找字符串中出现的所有括号,并根据括号替换内容';内容

Javascript—查找字符串中出现的所有括号,并根据括号替换内容';内容,javascript,html,regex,replace,find,Javascript,Html,Regex,Replace,Find,我想在字符串中搜索所有出现的url(),并根据内容替换内容 例如,有以下不同的url内容: url("assets/images/pic.jpg") url('assets/images/pic.jpg') url("../images/pic.jpg") url(../images/pic.jpg) url('../images/pic.jpg') url('http://website.com/images/pic.jpg') 和一个链接,该链接应插入到 url,具体取决于内容: link

我想在字符串中搜索所有出现的
url()
,并根据内容替换内容

例如,有以下不同的url内容:

url("assets/images/pic.jpg")
url('assets/images/pic.jpg')
url("../images/pic.jpg")
url(../images/pic.jpg)
url('../images/pic.jpg')
url('http://website.com/images/pic.jpg')
和一个链接,该链接应插入到 url,具体取决于内容:

link = "file://dir/first/"
如果url前面有
。/
,则应将其删除 链接应该在它前面

如果前面有一个
http://
,则应删除所有http链接, 除了末端的fil和应在前面插入的连杆外:

因此,应将以下链接转换为:

url('http://website.com/images/pic.jpg')
url("file://dir/first/pic.jpg")
问题是,有时链接位于
”、
或无链接之间

我只知道如何替换
。/-东西

response=response.replace(/url\(\'\.\.\//g, "url('"+link);
response=response.replace(/url\(\"\.\.\//g, 'url("'+link);
response=response.replace(/url\(\.\.\//g, "url("+link);
有人知道解决办法吗


谢谢!

如果您想触摸前两个语句,可以尝试此选项

string.replace(/(url\(['"]?)(?:\.\.\/|http:\/\/[^)]*\/)?/g, "$1" + link);
如果不想触碰前两个,请删除最后一个出现的可选量词

string.replace(/(url\(['"]?)(?:\.\.\/|http:\/\/[^)]*\/)/g, "$1" + link);

您想触摸前两个吗?非常感谢,这就是我要找的!