用javascript获取所有表行

时间:2012-05-05 16:54:53

标签: javascript html regex parsing

我有一个HTML字符串,想要获取所有内部的内部html。在过去,我使用jQuery在JavaScript中完成它,但我现在正在使用Appcelerator,并且不可能在那里使用DOM。 我有一个适用于PHP的正则表达式,但我不知道如何在JS中使用它。 有没有人知道如何在JS中使用这个正则表达式或有其他解决方案。

php regex:

preg_match_all("#\<tr\>(.+?)\<\/tr\>#s", $html, $match);

2 个答案:

答案 0 :(得分:0)

我在这个页面上得到了几乎所有div的内容:

var html = document.body.innerHTML;
var matches = html.match( /<div>(.+?)<\/div>/ig );
console.log( matches );

你可以在控制台试试。

答案 1 :(得分:0)

我会做这样的事情(未经测试):

var rowColArray = [], //2D format - first key will be row, second will be column
rowStrings.match(/<tr[^>]*>([^<]*)<\/tr>/ig),
i = rowStrings.length;

while(i--){
    rowColArray[i] = rowStrings.match(/<td[^>]*>([^<]*)<\/td>/ig)
}

请注意使用[^>]*及类似内容:

这就像是说“匹配0或更多任何不是'&gt;'的东西“并且比与每个角色相比要快得多'。'可以表示直到匹配成立。使用'。'的唯一原因。 regEx中的通配符是找到它不代表的真正古老的空白字符。对于处理大型表的哑浏览器regEx引擎而言,这实际上可能会产生巨大的差异。