我在字符串中有一个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,它是一个字符串。
答案 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")