如何从具有模糊ID的标签中提取特定属性?

时间:2017-08-14 10:54:23

标签: javascript regex

<iframe id="embed-1502305489435" name="embed-1502305489435" src="https://oembedly.com/embed.php?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DJvG1E0_Nazg"></iframe>

有时需要更新嵌入代码,但我会看到传统的嵌入代码,如上所述。

我想将上面的内容替换为src属性中包含的YouTube网址的普通超链接,将所有iframe与ID为“Embed - *”匹配。

我想用JQuery做到这一点:

$('[id^=embed-]').each(function() {

     var source = $(this).attr('src');

    // if: is it youtube (regex here)?

        // - replace iframe with hyperlink

});

我已经使用了很多REGEX,因为我复制并粘贴了Internet的例子。一个解决方案将是太棒了,但也是一个指针,我将来如何理解这个巫术将是太棒了。

1 个答案:

答案 0 :(得分:0)

这是最终的解决方案。不需要任何正则表达式。

结合非常有用的评论:

  • 我得到了属性
  • 使用substr
  • 修剪字符串
  • 用新的超链接替换了嵌入代码

    $(&#39; [id ^ = embed - ]&#39;)。each(function(){

    var source = $(this).attr('src');
    
    if (source.substr('www.youtube.com')) {
    
        var videoId = source.substring(source.indexOf('%3D') + 3);
    
        var linkHTML = '<a href="';
        linkHTML += 'http://www.youtube.com/watch?v=' + videoId + '?autoplay=1';
        linkHTML += '">YouTubeLink</a>';
    
        $(this).replaceWith(linkHTML);
    }
    

    });

对于我的症状,这是一个合适的膏药,而我等待解决服务器方面的原因。