正则里加了括号就无法全局匹配吗?请看代码

<script>
function regLinkWrap(content){
        var regtolink =/(<img)(.*>)/g;
        var regcontent=content.replace(regtolink,"$1 class='tr' $2");
        return regcontent;
}
document.write(regLinkWrap('文字文字<img src="b.jpg" alt="啦啦">文字文字<img src="a.gif" alt="yuyu">张三张三'))



</script>

最后只有第一个img标签加上了class="tr",第2个img标签并没有加class="tr"这是为什么呢?我已经加了/g了
谢谢
图片描述

阅读 2.6k
2 个回答

$1的结果:<img

$2的: src="b.jpg" alt="啦啦">文字文字<img src="a.gif" alt="yuyu">

$1 + class='tr' + $2的:
<img class='tr' src="b.jpg" alt="啦啦">文字文字<img src="a.gif" alt="yuyu">

我建议 regexp 应该这样:/(<img)(.*?>)/g

用了.*?就正常了,谢谢。
另外在.*?中,这个问号是只对*号起作用的?

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