【问题标题】:Trying to get <img> tags from text with subString and indexOf试图从带有 subString 和 indexOf 的文本中获取 <img> 标签
【发布时间】:2015-12-04 15:58:21
【问题描述】:

所以我得到了一个名为 text 的变量,其中包含 HTML 实体。 我的代码运行良好,因为我得到了整个 &lt;img ...&gt; 标签。 但这就是问题,有时有超过 1 个&lt;img&gt; 标签。 现在我的问题是如何获得所有这些 &lt;img&gt; 标签,我正在考虑在 indexof 的末尾添加 /g 之类的东西,但这并不成功。

这是我目前所拥有的:

var images = text.substring((text.indexOf("<img")), ((text.indexOf("/>")) + 2));

【问题讨论】:

    标签: javascript html angularjs regex


    【解决方案1】:

    使用 match() 和正则表达式 &lt;img[^&gt;]*\/?&gt;

    var text = `
    <img src="#" />
    <img src="sss.jpg" />
    `;
    
    var images = text.match(/<img[^>]*\/?>/g);
    
    console.log(images);

    Regex explanation here

    【讨论】:

    • 谢谢,我真的想不出比这更好的了。你的答案正是我想要的。
    【解决方案2】:

    text 字符串设为 jQuery 对象

    $(text)
    

    使用

    查找所有img
    $(text).find('img').addBack('img')
    

    【讨论】:

      【解决方案3】:

      你可以做的是沿着这些路线

       var tags = [];
       var re = /<img?([^/>]+)?/>/g, match;
       while(match = re.exec(text)) {
           tags.push(match[0]);
       }
      

      tags 将包含所有找到的图像标签。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-23
        • 1970-01-01
        • 2019-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多