Javascript - 查找字符串中所有出现的括号并根据其内容替换内容
Javascript - Find all occurences of brackets in a string and replace the content depending on it's content
我想搜索字符串中出现的所有 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')
和一个 link 应该放在
url,视内容而定:
link = "file://dir/first/"
如果url前面有../
,应该去掉
link 应该在它前面。
如果前面有一个http://
,那么http-link应该全部去掉,
除了最后的 fil 和 link 应该在前面插入:
所以下面的link应该转换为:
url('http://website.com/images/pic.jpg')
url("file://dir/first/pic.jpg")
问题是,有时 link 介于 "
、'
之间或什么都没有。
我只知道如何替换../-things
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, "" + link);
如果您不想触及前两个,请删除最后一个出现的可选量词 ?
。
string.replace(/(url\(['"]?)(?:\.\.\/|http:\/\/[^)]*\/)/g, "" + 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')
和一个 link 应该放在 url,视内容而定:
link = "file://dir/first/"
如果url前面有../
,应该去掉
link 应该在它前面。
如果前面有一个http://
,那么http-link应该全部去掉,
除了最后的 fil 和 link 应该在前面插入:
所以下面的link应该转换为:
url('http://website.com/images/pic.jpg')
url("file://dir/first/pic.jpg")
问题是,有时 link 介于 "
、'
之间或什么都没有。
我只知道如何替换../-things
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, "" + link);
如果您不想触及前两个,请删除最后一个出现的可选量词 ?
。
string.replace(/(url\(['"]?)(?:\.\.\/|http:\/\/[^)]*\/)/g, "" + link);