首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在普通字符串中用另一个HTML标记包装HTML标记

在普通字符串中用另一个HTML标记包装HTML标记
EN

Stack Overflow用户
提问于 2018-06-01 00:57:21
回答 2查看 474关注 0票数 0

我希望将一个HTML标记与另一个HTML标记包装在一个字符串中(所以不是DOM元素,而是一个普通字符串)。我创建了这个函数,但我想知道我是否可以在没有forEach循环的情况下一次性完成它。

这是工作函数:

代码语言:javascript
复制
function style(content) {
    var tempStyledContent = content;

    var imgMatches = tempStyledContent.match(/(<img.*?src=[\"'](.+?)[\"'].*?>)/g);

    imgMatches.forEach(function (imgMatch) {
        var imgTag = imgMatch;
        var imgSrc = imgMatch.match(/src\s*=\s*"(.+?)"/)[1];

        tempStyledContent = tempStyledContent.replace(imgTag,
            "<a href=\"" + imgSrc + "\" data-fancybox>" + imgTag + "</a>");
    });

    return tempStyledContent;
}

参数content是一个包含HTML代码的字符串。上面的函数输出与输入相同的html,但使用(fancybox) a标记将所有子img标记括起来。

所以像这样的输入字符串

代码语言:javascript
复制
"<div><img src='example.jpg'/></div>"

将输出

代码语言:javascript
复制
"<div><a href='example.jpg' data-fancybox><img src='example.jpg'/></a></div>"

有人能改进这一点吗?我对regex的了解太少,无法让它变得更好。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50629309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档