如何从youtube嵌入HTML正则表达式嵌入网址?

时间:2019-02-01 12:38:58

标签: javascript regex

我正试图从html嵌入字符串中获取 just YouTube嵌入网址。

用户将embed-html字符串放入输入中。然后,我想将其剥离为仅嵌入链接,以便始终可以将它们包含在预制的iframe中。

let str = '<iframe width="560" height="315" src="https://www.youtube.com/embed/a24p_KjdpKE" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>';

let indexOfURL = str.indexOf('http');
let embedURL = str.slice(indexOfUrl, str.find(-the-next-double-speech-mark-after-indexOfUrl));

console.log(embedUrl);

有一个厚脸皮的正则表达式会为我做到这一点?

1 个答案:

答案 0 :(得分:0)

感谢@VLAZ-我以前不熟悉HTML解析。不知道为什么。无论如何,快速阅读5分钟就能使我达到写这篇文章的地步,从而满足了我的需求。如果您正在阅读本文,我希望它也能解决您的问题。但是,如果不是这样,我就不会太在意。

注意:它适用于Vimeo,Soundcloud和YouTube(粘贴在它们的html中)。

const changeEmbedHTMLIntoEmbeddableURL = html => {
            let parser = new DOMParser();
            let htmlDoc = parser.parseFromString(html, 'text/html');
            let embeddableURL = htmlDoc.getElementsByTagName('iframe')[0].src;
            console.log('Embeddable URL: ', embeddableURL);
            return embeddableURL;
}