有一个img标签
<img src="http://xxx/loading.gif" src-src="http://xx/xxx.jpg" />
使用js正则匹配时
/<img.*?(?:src-src|src|src)=['|"]([\s\S]*?)['|"].*?>/ig
会同时匹配上src和src..但是$1里的值始终是src里的属性..这时候应该怎么办?
'<img src="http://xxx/loading.gif" src-src="http://xx/xxx.jpg" />'
.replace(/<img.*?(?:src-src|src|src)=['|"]([\s\S]*?)['|"].*?>/ig, '{{$1}}')
//结果
"{{http://xxx/loading.gif}}"
去掉匹配规则里的src是可以的..不过因为通用提取所以src是必须在的.问题是怎么在匹配上src-src后忽略src获取的$1
可以试试{{$'}}了?$1是匹配第一个文本,所有就是src,而$'是匹配右侧的文本
可以看看replace方法的详细解读:JavaScript replace() 方法
刚才是我说错了,sorry,应该这个就可以了,评论看不清楚
这样的话$1就是src的值,$2就是src-src|src的值