2012-07-18 33 views
0

我已经搜索和搜索,但似乎无法找到我需要的答案。我仍然围绕着整个正则表达式来解决这个问题,但这似乎很简单。在JavaScript中使用正则表达式只选择标签之间的文本

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

我想切一切除了"London",但一切我尝试"London<span>35.2miles</span>"结果我似乎无法摆脱跨度标记和文字,还有一个标签。

+0

为什么正则表达式?你的'a'标签不是一个dom元素吗? – Tamil 2012-07-18 10:50:50

+2

克苏鲁,我的领主,他来了,而处女小马掠过胎血......或类似的东西 – 2012-07-18 10:56:36

回答

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

+1将它作为DOM元素处理:) Jus在OP – Tamil 2012-07-18 10:52:21

+0

中加入了同样的评论,出色地工作,谢谢! – 2012-07-18 11:03:04

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]; 
} 
相关问题