gpt4 book ai didi

javascript - 使用 JavaScript 提取 HTML

转载 作者:行者123 更新时间:2023-11-28 21:05:28 25 4
gpt4 key购买 nike

对于所有了解 javascript 的人来说,这是一个简单的问题。我制作了一个应用程序,它获取以下代码并将其放入变量中:

<div class="article-author">Af <span class="remove_from_bt_touch">:</span>Af Tho
mas S&oslash;gaard Rohde, Berlingske Nyhedsbureau<span class="section-time">&nbs
p;15. jan. 2012
|
</span>
<span class="section-category">Danmark</span>
</div>

现在,我想要的是另一个变量,其中包含上面变量的日期。所以应该是 1 月 15 日。 2012年。

我该怎么做?

最佳答案

不太明白“将其放入变量中”的含义,只是说标记是分配给变量的字符串,例如:

var m = '<div class="article-author">Af ' +
'<span class="remove_from_bt_touch">:<\/span>' +
'Af Thomas S&oslash;gaard Rohde, Berlingske' +
' Nyhedsbureau<span class="section-time">&nbsp;' +
'15. jan. 2012 | <\/span>' +
'<span class="section-category">Danmark<\/span><\/div>';

如果是这种情况,您可以使用 match 和正则表达式来获取日期(前提是它完全符合所示的格式):

var re = /\d\d?\. [a-z]{3}\. [0-9]{4}/;

alert(m.match(re)); // 15. jan. 2012

但是,如果您的意思是它是页面中的标记,并且您尝试使用 section-time 类获取跨度中的文本,那么您可以使用类似以下内容的内容:

// Get all elements with class section-time, use DOM method, 
// querySelectorAll or some other means
var el, els = document.getElementsByClassName('section-time');

// Get the date out of each. Use a regular expression as there
// seems to be other stuff in there
var dates = [];
var re = /\d\d?\. [a-z]{3}\. [0-9]{4}/;

for (var i=0, iLen=els.length; i<iLen; i++) {
el = els[i];
dates.push((el.innerText || el.textContent).match[0]);
}

或者,您可以使用 match 与公共(public)父元素的 innerHTML 上的上述正则表达式来获取数组中的所有此类日期。

关于javascript - 使用 JavaScript 提取 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9993454/

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