如何从 JavaScript 中的链接中提取文本?

发布于 2024-11-15 09:20:58 字数 145 浏览 1 评论 0原文

我有以下字符串:

StackOverFlow

如何从字符串中提取文本(即 StackOverFlow) ?

I have following string:

<a href="http://stackoverflow.com" target="_blank">StackOverFlow</a>

How can I extract text (i.e. StackOverFlow) from the string?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

妳是的陽光 2024-11-22 09:20:58

不需要正则表达式:

var t_ = document.createElement('div'),
    a;
t_.innerHTML = htmlString; // <- string containing your HTML
a = t_.children[0];

var text = a.textContent || a.innerText; // W3C vs IE

实际上 用正则表达式解析 HTML 是邪恶的。尽管针对特定情况想出一个表达式可能很容易,但对于不同的字符串可能效果不佳。

No regex required:

var t_ = document.createElement('div'),
    a;
t_.innerHTML = htmlString; // <- string containing your HTML
a = t_.children[0];

var text = a.textContent || a.innerText; // W3C vs IE

Actually parsing HTML with regular expressions is evil. Although it might be easy to come up with an expression for your specific case, it might not work well for a different string.

第七度阳光i 2024-11-22 09:20:58
document.getElementById('link_id').innerHTML;

这是我之前的解决方案,用户添加了更多描述,但这是当前描述的解决方案

var s = '<a href="http://stackoverflow.com" target="_blank">StackOverFlow</a>';
var text = s.match(/<a[^\b>]+>(.+)[\<]\/a>/)[1];
document.getElementById('link_id').innerHTML;

That was my solution before, user added more description but this is solution for current description

var s = '<a href="http://stackoverflow.com" target="_blank">StackOverFlow</a>';
var text = s.match(/<a[^\b>]+>(.+)[\<]\/a>/)[1];
紅太極 2024-11-22 09:20:58

如果您可以向链接添加 id,如下所示:“StackOverFlow”,那么您可以获得如下文本:

document.getElementById('linkID').innerHTML;

If you can add an id to your link like so: `StackOverFlow" then you can get the text like this:

document.getElementById('linkID').innerHTML;

半城柳色半声笛 2024-11-22 09:20:58
window.onload = function(){
    var text = '<a href="http://stackoverflow.com" target="_blank">StackOverFlow</a>';
    var parser = null;
    if (window.DOMParser){
        parser = new DOMParser();
        xmlDoc = parser.parseFromString(text,"text/xml");
    } else{ // Internet Explorer
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async="false";
        xmlDoc.loadXML(text); 
    }
    var a = xmlDoc.childNodes[0];
    alert(a.childNodes[0].nodeValue);
}

http://www.w3schools.com/dom/dom_parser.asp

window.onload = function(){
    var text = '<a href="http://stackoverflow.com" target="_blank">StackOverFlow</a>';
    var parser = null;
    if (window.DOMParser){
        parser = new DOMParser();
        xmlDoc = parser.parseFromString(text,"text/xml");
    } else{ // Internet Explorer
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async="false";
        xmlDoc.loadXML(text); 
    }
    var a = xmlDoc.childNodes[0];
    alert(a.childNodes[0].nodeValue);
}

http://www.w3schools.com/dom/dom_parser.asp

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文