求正则大佬帮我看一下这个正则没弄明白

在网上扒的一个正则没太看明白 请教一下各位大佬

function me(str){
        return str.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function (match, capture) {
        console.log(match)
        console.log(capture)
        return match.replace(new RegExp("(" + capture + ")", "g"),'https://aishou.yuxwl.top'+capture)
        })

上面这个方法 是匹配字符串里面的img标签 替换img标签里面的src地址 然后在返回到原有的字符串里面 想法已经实现 但是没看明白啊
图片描述

不明白为什么第二个参数 打印出来的a.png
希望能给我解释一下 这个正则 或者为什么会出现 我看的话应该是匹配 img 标签 第一个打印的能理解 第二个就不理解了 求大神给小白解惑

阅读 3k
6 个回答

match:整体匹配的值
capture:([^'"]+)是打印这个,第一个元组里的值

你理解的第一个答案,是全局匹配的完整结果,第二个,是圆括号里的分组后匹配的结果,圆括号是用来对匹配结果进行分组的!

clipboard.png
这样应该可以方便你理解~

新手上路,请多包涵

后面跟的 gi g是全局,i是什么?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题