1

私は HTML-String を持っていて、内部のすべての tr の内部 html を取得したいと考えています。以前は jQuery を使用して JavaScript で実行していましたが、現在は Appcelerator を使用しており、そこで DOM を使用することはできません。PHP で動作する正規表現がありますが、JS での使用方法がわかりません。JSでこの正規表現を使用する方法を知っている人はいますか、または他の解決策があります。

php 正規表現:

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

2 に答える 2

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 個以上に一致する」と言うようなものであり、すべての単一文字 '.' と比較するよりもはるかに高速です。試合が成立するまで出場できます。「.」を使用する唯一の理由 正規表現のワイルドカードは、それが表していない非常に古いあいまいな空白文字を見つけることです。これは、大きなテーブルを処理する愚かなブラウザの正規表現エンジンにとって、実際にはかなり大きな違いを生む可能性があります.

于 2012-05-05T18:12:10.033 に答える
0

このページのほぼすべての div の内容を次のように取得しました。

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

コンソールで試すことができます。

于 2012-05-05T17:22:55.687 に答える