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]目前,我正在为正则表达式获得正确的值打印输出exp;如果highlights[i]是“记住”,那么我得到的打印输出exp是“/Remember/g”(不带引号)——但它不会替换页面上的“记住”这个词。'如果我highlights[i]new RegExp()简单的字符串“Remember”替换它,它就可以正常工作。关于有什么问题的任何想法?

编辑: 我解决了这个问题!创建时,RegExp()我传入highlights[i].trim()而不是仅仅highlights[i]在开始/结束时摆脱空白,它现在似乎正在工作。

4

1 回答 1

2

你的 multiline 有问题server.responseText。我用空格而不是换行符替换了输入,并且所有替换都可以正常工作:

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

于 2012-09-10T07:19:56.557 回答