在javascript中使用正则表达式仅选择标记之间的文本

时间:2012-07-18 10:44:32

标签: javascript regex text

我进行了搜索和搜索,但似乎无法找到我需要的答案。我仍然围绕着整个正则表达式的事情,不知道足以解决这个问题,这似乎很简单。

我有一个字符串"<a href="#">London<span>35.2miles</span></a>"

我需要删除"London"以外的所有内容,但我尝试的所有内容都会导致"London<span>35.2miles</span>"我似乎无法摆脱 span 标记和文本,以及 a 标签。

2 个答案:

答案 0 :(得分:3)

var root = document.createElement("div");
root.innerHTML = '<a href="#">London<span>35.2miles</span></a>';
alert( root.firstChild.firstChild.nodeValue );

答案 1 :(得分:0)

以下正则表达式应该有效;

/>([^<]*)/

它匹配从第一个>到其他<

的任何内容

您可以将其与match()方法结合使用,最终得到类似的内容;

var matches = '<a href="#">London<span>35.2miles</span></a>'.match(/>([^<]*)/);

if (matches) { // "null" if no matches, array if there was.
    var london = matches[1];
}