javascript - 正则提取img属性时的匹配排序问题
天蓬老师
天蓬老师 2017-04-10 17:05:35
0
1
211

有一个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)
Peter_Zhu

可以试试{{$'}}了?$1是匹配第一个文本,所有就是src,而$'是匹配右侧的文本
可以看看replace方法的详细解读:JavaScript replace() 方法

刚才是我说错了,sorry,应该这个就可以了,评论看不清楚

'<img src="http://xxx/loading.gif" src-src="http://xx/xxx.jpg" />'
.replace(/<img.*?(?:src)=['|"]([\s\S]*?)['|"].*? .*?(?:src-src|src)=['|"]([\s\S]*?)['|"].*?>/ig, '{{$1}}')

这样的话$1就是src的值,$2就是src-src|src的值

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!