Javascript 如何从具有模糊id的标记中提取特定属性?

Javascript 如何从具有模糊id的标记中提取特定属性?,javascript,regex,Javascript,Regex,我经常使用REGEX,因为我复制并粘贴了互联网的示例。一个解决方案将是非常棒的,但是一个关于我将来如何理解这个巫术的指针也将是非常棒的。这是最终的解决方案。不需要任何正则表达式 结合非常有用的评论: 我得到了属性 使用substr修剪字符串 将嵌入代码替换为新的超链接 $('[id^=embed-]')。每个(函数(){ var source=$(this.attr('src'); if(source.substr('www.youtube.com')){ var videoId=source

我经常使用REGEX,因为我复制并粘贴了互联网的示例。一个解决方案将是非常棒的,但是一个关于我将来如何理解这个巫术的指针也将是非常棒的。

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

结合非常有用的评论:

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

    $('[id^=embed-]')。每个(函数(){

    var source=$(this.attr('src');
    if(source.substr('www.youtube.com')){
    var videoId=source.substring(source.indexOf('%3D')+3);
    var linkHTML='';
    $(this).replacetwith(linkHTML);
    }
    
    }))


这是一个适合我症状的膏药,同时我在等待服务器端原因的解决方案。

使用HTML解析器。阅读“未来我如何理解这个巫术的指针”,以加深对regex的理解。这让人大开眼界。尽管如此,您的问题被标记为[jquery],因此您似乎希望在加载页面后在浏览器中进行iframe替换。这是可行的,但是在服务器端一劳永逸地解决这些问题不是更有意义吗?没错,我确实想在客户端解决。对这个服务器端进行排序会更有意义,我完全同意你的看法。这个代码的可能重复不是最好的做法,你看到我的答案了吗?
<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>
$('[id^=embed-]').each(function() {

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

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

        // - replace iframe with hyperlink

});
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);
}