gpt4 book ai didi

javascript - 如何从 ajax 返回的纯文本中提取 href 和 src 结果

转载 作者:行者123 更新时间:2023-11-30 09:38:23 26 4
gpt4 key购买 nike

我不得不使用一个写得一点也不好的小部件。所以它使用 document.write 返回一个带有一些错误代码的函数,我不想将它插入到我的页面中。这是返回的内容:

if (position == 'Right') {
document.write('<A HREF="xxxxxx/xxxx/xxx- www.xxxx.com/xxxx/default/empty.gif/1?x" target="_top"><IMG SRC="https://cdn.oas-c17.adnxs.com/RealMedia/ads/Creatives/default/empty.gif/0" WIDTH=1 HEIGHT=1 ALT="" BORDER=0 BORDER="0"></A>');
}

相反,我使用 ajax 调用以纯文本形式获取所有内容,而我所需要的只是上述文本的 href 和 src 的结果。所以我需要解析文本并得到:

https://xxxx-www.xxxx.com/xxx/home/1735871518/Right/default/empty.gif/1?x

https://cdn.oas-c17.adnxs.com/RealMedia/ads/Creatives/default/empty.gif/0 

这是我获取纯文本的调用:

function getTodaysAd() {
$.ajax({
url : "https:xxxxxxxxxx",
dataType : 'text',
cache : false,
success : function(data) {
alert();
console.log(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
}

由于我通常以 JSON 格式返回所有内容,因此我很难解析此纯文本。可以通过正则表达式实现吗?

最佳答案

首先,您可以提取 <a>使用此正则表达式标记出响应:

var markup = data.match(/document.write\s?\('([^']*)'/i);
// searches for "document.write (' [...] '"

你的 markup[1]变量应该包含函数要写入的所有标记,如下所示:

<A     HREF="xxxxxx/ads/click_lx.ads/stage6-   www.xxxx.com/xxxx/default/empty.gif/1?x" target="_top"><IMG    SRC="https://cdn.oas-c17.adnxs.com/RealMedia/ads/Creatives/default/empty.gif/0"     WIDTH=1 HEIGHT=1 ALT="" BORDER=0 BORDER="0"></A>

接下来,您可以使用 jQuery 将其转换为 HTML 节点,如下所示:

var a = $(markup[1]);

现在,您将拥有一个 <a>您可以像页面上的任何其他元素一样解析的标记。您可以检索 hrefsrc像这样:

var href = a.attr('href');
var src = a.find('img').attr('src');

关于javascript - 如何从 ajax 返回的纯文本中提取 href 和 src 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42369734/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com