0

这是我的代码:

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>

它返回null

4

5 回答 5

1

用这个:

var str="<table><tr><td>abraham</td></tr></table>";
var result = str.match(/<td>(\w+)<\/td>/); //"abraham"
document.write(result[1]);

编辑:如果您在tds 之间有特殊字符(如空格),您可以使用:

var str="<table><tr><td>abraham asd</td></tr></table>";
var result = str.match(/<td>(.*?)<\/td>/); //"abraham asd"
document.write(result[1]);

现场演示。

于 2013-04-23T07:11:47.673 回答
1

这应该适合您的需求:

<td>(.*?)</td>

演示在这里

于 2013-04-23T07:19:03.083 回答
1

基本上它是>和<之间的非空白。试试看,如果

>\s?(\w+)\s?<

满足您的需求。

于 2013-04-23T07:19:54.507 回答
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>

于 2013-04-23T07:16:42.157 回答
0

您可以使用createElementinnerHTMLtextContent

var dummy = document.createElement('div');
dummy.innerHTML = str;
var text = dummy.textContent;

或者,使用像 jQuery 这样的库(跨浏览器会更好):

var text = $(str).text();

两者的工作示例:http: //jsbin.com/acuyoq

于 2013-04-23T07:18:01.500 回答