如何使用javascript replace()函数替换多个单词?
这是我的密码:如何使用javascript replace()函数替换多个单词?,javascript,Javascript,这是我的密码: var keys = keyword.split(' '); //alert(keys); for(var i=0; i<keys.length; i++) { var re = new RegExp(keys[i], "gi"); var NewString = oldvar.replace(re, '<span style="background
var keys = keyword.split(' ');
//alert(keys);
for(var i=0; i<keys.length; i++)
{
var re = new RegExp(keys[i], "gi");
var NewString = oldvar.replace(re, '<span style="background-color:#FFFF00">'+keys[i]+'</span>');
document.getElementById("wordlist").innerHTML=NewString;
alert(keys[i]);
}
var keys=keyword.split(“”);
//警惕(钥匙);
对于(var i=0;ivar key=keyword.split(“”);
//警惕(钥匙);
对于(var i=0;i您应该在同一个var上执行操作。您将oldvar带到循环之外,但决不将更改的内容带到oldvar中。因此,最后一次迭代(仅)是替换内容的迭代。您实际上可以执行如下单个正则表达式替换:
var re = new RegExp(keys.join("|"), "gi");
oldvar = oldvar.replace(re, replacer);
document.getElementById("wordlist").innerHTML = oldvar;
function replacer(str)
{
return '<span style="background-color:#FFFF00">' + str + '</span>';
}
var re=new RegExp(key.join(“|”),“gi”);
oldvar=oldvar.replace(re,replacer);
document.getElementById(“wordlist”).innerHTML=oldvar;
函数替换器(str)
{
返回“+str+”;
}
示例-
它所做的是将所有键合并到一个由|
分隔的正则表达式中,该正则表达式将匹配所有单词,然后在匹配项上运行replacer函数
示例2-您正在对变量oldvar
调用replace
(此代码段中未声明该变量)在每次迭代中,因此每次都从同一点开始,即非突出显示的字符串。在没有看到所有代码的情况下,我想简单地用oldvar=
替换var NewString=
和替换.innerHTML=NewString
。innerHTML=oldvar
将解决您的问题。如果按此键麦克:那么这段代码不起作用了。它仍然替换HTML标记。我想防止替换HTML标记。请帮助解决this@Moumita我不知道你是什么意思,我添加了另一个示例,允许将不同的值传递给函数,这是否满足你的需要?我做了这个:我的字符串有一些html内容。我想用这些html内容显示它。但我也只想将文本替换到这些html标记中。我应该怎么做?我想我需要使用正则表达式检查所有“- ”和“
”,但如何检查呢?检查这是我的问题:我不想突出显示任何html标记,
var re = new RegExp(keys.join("|"), "gi");
oldvar = oldvar.replace(re, replacer);
document.getElementById("wordlist").innerHTML = oldvar;
function replacer(str)
{
return '<span style="background-color:#FFFF00">' + str + '</span>';
}