我正在尝试创建一个 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]
在开始/结束时摆脱空白,它现在似乎正在工作。