Javascript 更改字符串中的多个单词(JS)

Javascript 更改字符串中的多个单词(JS),javascript,Javascript,JS函数在字符串中找到一个单词,并将其编码为“highlight” 但是我怎样才能将多个单词改为突出显示而不是单个单词呢 比如, highlightWord('test#word#covid'); highlightWord(“测试”); 函数highlightWord(word){ var word=word.split(“#”); var string='Hello world,test text'; var newWord=''+word+''; //使用正则表达式进行替换 var al

JS函数在字符串中找到一个单词,并将其编码为“highlight”

但是我怎样才能将多个单词改为突出显示而不是单个单词呢

比如,

highlightWord('test#word#covid');
highlightWord(“测试”);
函数highlightWord(word){
var word=word.split(“#”);
var string='Hello world,test text';
var newWord=''+word+'';
//使用正则表达式进行替换
var allWords=new RegExp('\\b'+word+'\\b','gi');
var newString=string.replace(allWords,newWord);
console.log(新闻字符串)
};我的建议:

const highlightWord=s=>s.split('#').map(s=>`${s}`);
log(highlightWord('test#word#covid');

console.log(highlightWord('test'))它将根据需要循环3次,您对循环的最后一个结果感兴趣

如果删除
console.clear()
,您将看到每个循环的进度

为了工作,我在循环外部声明了
oldstring

无需创建
新闻字符串
,只需在每个循环中更改旧的

let word='test#word#covid';
让oldstring=document.getElementById(“test”).innerHTML;
单词=单词分割(“#”);
words.forEach(w=>highlightWord(w))
函数highlightWord(word){
var newWord=''+word+'';
//使用正则表达式进行替换
var allWords=new RegExp('\\b'+word+'\\b','gi');
oldstring=oldstring.replace(allWords,newWord);
控制台清除()
console.log(oldstring)
document.getElementById(“test”).innerHTML=oldstring
};
。突出显示{
颜色:红色}

你好,世界,测试文本,新冠病毒,单词
你指的是一句话还是多个单词?如果前者意识到您正在使用正则表达式,那么
word1 | word2 | word3
将匹配其中任何一个。如果后者试着用一句话来传递(“你好,世界”)。在一般情况下,您需要解析html,即换行符,以及任何可能是内联的标记,等等。嗨,艾伦,我看到了,但我用散列(#)分隔的每个单词都是不同的。例如“finance#getting#table#wall”这样的@AllanWindi如果你坚持#将单词分开作为输入,请使用word.replace(“#”和“|”)。试试看,让我知道你得到了什么。您可能需要在正则表达式周围使用一个()函数。为什么不简单地创建一个数组
word=[“word1”、“word2”、“word3”]
,然后在每个数组上循环调用相同的函数呢
word.forEach(w=>highlightWord(w))
JSfiddle@AllanWind上的演示谢谢,但这是作为数组提供的吗?@Editor是的。你可以简单地在数组中循环替换文本中的单词。你的方法很好,但我想这是我的问题。我不能循环。@编辑器我已经编辑了我的答案。看看吧。