0

ページ上の特定のテキストを強調表示するためのJavaScriptスクリプトを作成しようとしています。現在、(本文のhtmlからの)テキストを他のテキストに置き換えようとして問題が発生しています。highlights配列内の各アイテムのすべてのインスタンスを他のテキストに置き換えたいと思います。

私が使用しているコードは次のとおりです。

    var responseText = server.responseText;
    var highlights = responseText.split("\n");
    var text = document.body.innerHTML;

    for (i in highlights) {
        if (highlights[i].length > 1) {
            var exp = new RegExp(highlights[i], "g");
            console.log(exp);
            console.log(highlights[i]);
            text = text.replace(exp, "XXXXXXXXXXX");
        }
    }

    document.body.innerHTML = text;

現在、正しい値のプリントアウトを取得してhighlights[i]おり、正規表現用だと思いますexphighlights[i]が「Remember」の場合、取得する出力expは「/ Remember / g」(引用符なし)ですが、ページの「Remember」という単語に置き換わるものではありません。'そして、単に文字列 "Remember"に置き換えるhighlights[i]と、正しく機能します。new RegExp()何が悪いのかについて何か考えはありますか?

編集: 私は問題を解決しました!作成するとき、最初/最後の空白を取り除くのではなく、RegExp()渡したもので、現在は機能しているように見えます。highlights[i].trim()highlights[i]

4

1 に答える 1

2

マルチラインに問題がありますserver.responseText。入力を改行ではなくスペースに置き換えましたが、すべての置換が正常に機能します。

http://jsfiddle.net/XTdgJ/1/

于 2012-09-10T07:19:56.557 に答える