从Java脚本中的iFrame提取SRC

时间:2018-12-22 04:18:45

标签: javascript node.js

我在字符串中有一个iframe,如下所示:

let data = "<iframe src=\"https://example.com/3380098/test/embed\" height=\"500\" width=\"100%\" style=\"border:0\"></iframe>"

我的目标是从src中提取数字'3380098'

我坚持解析它。

这是我的方法:

var parser = new DOMParser();

var parsedIframe = parser.parseFromString(data, "text/html");
let iFrame = parsedIframe.getElementsByTagName("iframe");

但是从现在开始,我无法获得iframe的src。请帮忙。

这个问题有所不同,因为没有真正的iframe,它是一个字符串。

3 个答案:

答案 0 :(得分:2)

您真的需要将其解析为DOM吗?如果始终使用具有相似URL的相似格式,则可以改用一些正则表达式,例如:

let data = "<iframe src=\"https://example.com/3380098/test/embed\" height=\"500\" width=\"100%\" style=\"border:0\"></iframe>";
let match = data.match(/example\.com\/([0-9]+)\//i);
alert(match[1]);

答案 1 :(得分:0)

只需读取集合中第一个元素的src属性,然后解析URL。

let data = "<iframe src=\"https://example.com/3380098/test/embed\" height=\"500\" width=\"100%\" style=\"border:0\"></iframe>";

var parser = new DOMParser();

var parsedIframe = parser.parseFromString(data, "text/html");
let iFrame = parsedIframe.getElementsByTagName("iframe");

// Read URL:
let src = iFrame[0].src;
console.log(src);

// Parse URL:
let match = src.match(/\/(\d+)\//);
let digits = match ? match[1] : null;
console.log(digits);

答案 2 :(得分:0)

parsedIframe.getAttribute("src")