我正试图从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);
有一个厚脸皮的正则表达式会为我做到这一点?
答案 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;
}