var str='第一个视频<iframe frameborder="0" width="640" height="498" src="https://v.qq.com/iframe/player.html?vid=a0678a3ahqx&tiny=0&auto=0" allowfullscreen=""></iframe>第二个视频<iframe frameborder="0" width="640" height="498" src="https://v.qq.com/iframe/player.html?vid=a0678a3ahqx&tiny=0&auto=0" allowfullscreen=""></iframe>没有了'
var result=str.replace(/(<iframe) (.*) (width=\".*?\") (height=\".*?\") (.*)(<.*?iframe>)/g,"$1 $2 width='100%' $5 $6")
console.log(result)
我想把iframe里的width="640" height="498"用正则替换为width="100%"
于是就写上上述正则,发现如果字符串里只有一个iframe是成功替换的,但是如果有2个iframe的话,就只会替换第2个iframe了.
求大神帮助,希望每个iframe里,width="640" height="498"变成width="100%"
在线调试地址http://jsbin.com/dumuxewubu/e...
=============分割线,问题解决啦======================================
发现之前用的非贪婪匹配方法加错了,不该用(.*)? 把问号写在括号外,
用了这个就好了
var result=str.replace(/(<iframe) (.*?) (width=\".*?\") (height=\".*?\") (.*?)(<.*?iframe>)/g,"$1 $2 width='100%' $5 $6")
Smart猫小萌
相关分类