为了账号安全,请及时绑定邮箱和手机立即绑定

正则,用了问号依旧贪婪匹配问题

正则,用了问号依旧贪婪匹配问题

偶然的你 2019-03-21 18:15:48
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")
查看完整描述

2 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

解决啦,发现之前用的非贪婪匹配方法加错了,不该用(.*)? 把问号写在括号外,

用了这个就好了


解决啦,发现之前用的非贪婪匹配方法加错了,不该用(.*)? 把问号写在括号外,

用了这个就好了

var result=str.replace(/(<iframe) (.*?) (width=\".*?\") (height=\".*?\") (.*?)(<.*?iframe>)/g,"$1 $2 width='100%' $5 $6")


查看完整回答
反对 回复 2019-04-05
  • 2 回答
  • 0 关注
  • 448 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信