url正则匹配求助

WytheChan
  • 766

待匹配的字符串差不多是这样的:

url("http://localhost:8888/img/4ecdd7cd00b149c1ba169c2671dcdc82.png")

我想要的结果:

http://localhost:8888/img/4ecdd7cd00b149c1ba169c2671dcdc82.png

我尝试写的正则:

let url= 'url("http://localhost:8888/img/4ecdd7cd00b149c1ba169c2671dcdc82.png")'
let reg = /[^url("")]+[^\s]*/gi;
            
reg.exec(url)

打印结果:

图片描述

回复
阅读 1.9k
5 个回答
改名字很伤神
  • 7.9k
✓ 已被采纳
var url= 'url("http://localhost:8888/img/4ecdd7cd00b149c1ba169c2671dcdc82.png")'
var reg = /^url\(\"(.*)\"\)/;
console.log(reg.exec(url)[1])

当遇到一个场景,写了正则,不知道对不对或者不知道错在哪里,可以上 regex101.com 看看你写的正则的含义是什么。

你这个比较规则的字符串没必要用正则,用截取字符串就好了

str = "url(xxx)"
str.substring(4,str.length-1) // xxx
reg=/url\((.*?)\)/

clipboard.png

 let url= 'url("http://localhost:8888/img/4ecdd7cd00b149c1ba169c2671dcdc82.png")'
 let reg = /\((.+?)\)/g,
     reg2 = /\"(.+?)\"/g;
            
console.log(reg2.exec(reg.exec(url)[1])[1])
str.replace(/url\("([^"]*)"\)/i,"$1");
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏