这是我的代码:
var str="<table><tr><td>abraham</td></tr></table>";
如何通过匹配td
获取亚伯拉罕?
我尝试但失败了,我不想匹配table
或tr
,我只希望匹配td
。
<!DOCTYPE html>
<html>
<body>
<script>
var str="<table><tr><td>anilkumar</td>";
var patt1=/<td>(\w+)<\/td>/;
document.write(str.match(patt1));
</script>
</body>
</html>
它ruturns null 。
答案 0 :(得分:1)
使用此:
var str="<table><tr><td>abraham</td></tr></table>";
var result = str.match(/<td>(\w+)<\/td>/); //"abraham"
document.write(result[1]);
修改:如果您可以使用td
之间的特殊字符(如空格):
var str="<table><tr><td>abraham asd</td></tr></table>";
var result = str.match(/<td>(.*?)<\/td>/); //"abraham asd"
document.write(result[1]);
答案 1 :(得分:1)
答案 2 :(得分:1)
基本上它是&gt;之间的非空白和&lt;。试试,如果
&GT;?\ S(\ W +)\ S&LT;
满足您的需求。
答案 3 :(得分:0)
使用此表达式:^<\s*(td|TD)\s*(\w|\W)*\s*>(\w|\W)*</(td|TD)>$
这个匹配 * 在html中,所以任何其他html标记都只是对此做了一点改动
完美匹配:<td>hello kitty</td> OR <TD WIDTH='20></TD> OR <TD >&NBSP;</td>
答案 4 :(得分:0)
您可以使用createElement
,innerHTML
和textContent
:
var dummy = document.createElement('div');
dummy.innerHTML = str;
var text = dummy.textContent;
或者,使用像jQuery这样的库(可以更好地跨浏览器工作):
var text = $(str).text();
两者的工作示例:http://jsbin.com/acuyoq