gpt4 book ai didi

JavaScript 字符串replace()在替换变量时不起作用

转载 作者:行者123 更新时间:2023-12-02 19:22:40 24 4
gpt4 key购买 nike

我正在尝试创建一个 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] 是“Remember”,那么我得到的 exp 的打印输出是“/Remember/g”(不带引号)——但它是不替换页面上的“记住”一词。 '如果我将 new RegExp() 中的 highlights[i] 替换为简单的字符串“Remember”,它就会正常工作。关于哪里出了问题有什么想法吗?

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

最佳答案

您的多行 server.responseText 存在一些问题。我用空格而不是换行符替换了输入,并且所有替换都工作正常:

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

关于JavaScript 字符串replace()在替换变量时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12346483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com