我制作了一个程序,用于突出显示搜索过的页面中的所有单词。 我喜欢这个时工作正常
var high = "<span class='highlighted'>hello</span>";
document.getElementById("inputText").innerHTML = inputText.replace(/\kumar/g, high);
用hello highligheted替换所有kumar名称..
但它是静态的,我们无法在运行时更改kumar
所以我想像这样改变
var high = "<span class='highlighted'>hello</span>";
var kk='kumar';
document.getElementById("inputText").innerHTML = inputText.replace(/\kk/g, high);
但这不起作用。它不会改变kumar
字......
答案 0 :(得分:1)
您可以使用RegExp
构造函数,而不是使用RegExp
文字。
var yourVar = "pattern (to replace)";
var re = new RegExp(yourVar, "g");
然后:
var high = "<span class='highlighted'>hello</span>";
document.getElementById("inputText").innerHTML = inputText.replace(re, high);
答案 1 :(得分:1)
使用RegExp
构造函数
var high = "<span class='highlighted'>hello</span>";
var kk='kumar';
document.getElementById("inputText").innerHTML = inputText.replace(new RegExp(kk, 'g'), high);
注意转义,因为传递给构造函数的是一个文字字符串。 有关详细信息,您只需要谷歌。