0

削り取られたサイトからいくつかのテキストを切り出そうとしていますが、これを簡単にするためにどの関数またはライブラリを使用できるかわかりません。

PhantomJSから実行するコードの例:

var latest_release = page.evaluate(function () {
                // everything inside this function is executed inside our
                // headless browser, not PhantomJS.
                var links = $('[class="interesting"]');
                var releases = {};
                for (var i=0; i<links.length; i++) {
                    releases[links[i].innerHTML] = links[i].getAttribute("href");
                }

                // its important to take note that page.evaluate needs
                // to return simple object, meaning DOM elements won't work.
                return JSON.stringify(releases);
            }); 

クラスinterestingには必要なものがあり、新しい行やタブなどに囲まれています。

ここにあります:

{"\n\t\t\t\n\t\t\t\tI_Am_Interesting\n\t\t\t\n\t\t":null,"\n\t\t\t\n\t\t\t\tI_Am_Interesting\n\t\t\t\n\t\t":null,"\n\t\t\t\n\t\t\t\tI_Am_Interesting\n\t\t\t\n\t\t":null}

試してみましたが何も起こりませんでしたが、これらの文字列との関係string.slice("\n");に基づいて、このような文字列を効果的に切り取ることができる方法が本当に必要です。\n'\t

ちなみに、これは私の分割コードでした:

var x = latest_release.split('\n');

乾杯。

4

4 に答える 4

3

すべての空白を取り除く単純なケースです。正規表現が美しく行う仕事。

var s = "  \n\t\t\t\n\t\t\t\tI Am Interesting\n\t\t \t \n\t\t";
s = s.replace(/[\r\t\n]+/g, ''); // remove all non space whitespace
s = s.replace(/^\s+/, ''); // remove all space from the front
s = s.replace(/\s+$/, ''); // remove all space at the end :)
console.log(s);

さらに読む: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp

于 2012-07-03T08:29:15.380 に答える
2
    var interesting = {
        "\n\t\t\t\n\t\t\t\tI_Am_Interesting1\n\t\t\t\n\t\t":null,
        "\n\t\t\t\n\t\t\t\tI_Am_Interesting2\n\t\t\t\n\t\t":null,
        "\n\t\t\t\n\t\t\t\tI_Am_Interesting3\n\t\t\t\n\t\t":null
    }

    found = new Array();
    for(x in interesting) {
        found[found.length] = x.match(/\w+/g);
    }
    alert(found);
于 2012-07-03T08:17:53.710 に答える
1

「\\n」をパターンにしてみてください。\ nは、特殊文字ではなく単純な文字列として理解される場合があります

于 2012-07-03T08:04:33.947 に答える
0
new_string = string.replace("\n", "").replace("\t", "");
于 2012-07-03T08:10:15.363 に答える