我有一个 HTML 字符串,想获取所有 tr 的内部 html。过去我在 JavaScript 中使用过 jQuery,但我现在使用的是 Appcelerator,并且无法在其中使用 DOM。我有一个适用于 php 的正则表达式,但我不知道如何在 JS 中使用它。有谁知道如何在 JS 中使用这个正则表达式或有其他解决方案。
正则表达式:
preg_match_all("#\<tr\>(.+?)\<\/tr\>#s", $html, $match);
我有一个 HTML 字符串,想获取所有 tr 的内部 html。过去我在 JavaScript 中使用过 jQuery,但我现在使用的是 Appcelerator,并且无法在其中使用 DOM。我有一个适用于 php 的正则表达式,但我不知道如何在 JS 中使用它。有谁知道如何在 JS 中使用这个正则表达式或有其他解决方案。
正则表达式:
preg_match_all("#\<tr\>(.+?)\<\/tr\>#s", $html, $match);
我得到了这个页面上几乎所有 div 的内容,如下所示:
var html = document.body.innerHTML;
var matches = html.match( /<div>(.+?)<\/div>/ig );
console.log( matches );
您可以在控制台中尝试一下。
我会做这样的事情(未经测试):
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 个或更多不是 '>' 的任何内容”,并且比与每个单个字符 '.' 进行比较要快得多。可以表示直到建立匹配。使用 '.' 的唯一原因 正则表达式中的通配符是为了找到它不代表的真正古老的晦涩空白字符。对于处理大型表的愚蠢浏览器正则表达式引擎来说,这实际上可能会产生巨大的差异。