我正在尝试为这样的特定单词添加跨度:
var value = "eror";
var template = "/(" + value + ")/g";
$("#content").html($("#content").html().replace(template, '<span class="spell_error">$1</span>'));
这是我的fiddle。我尝试使用我在这里看到的解决方案,但它似乎不起作用。不知道为什么? 谢谢
答案 0 :(得分:6)
您会混淆正则表达式文字和字符串。
使用它来创建你的正则表达式:
var template = new RegExp("(" + value + ")", 'g');
正则表达式文字是这样的:
/(something)/
没有引用。但由于它是文字,因此您无法使用代码构建它,因此您必须使用RegExp
构造函数。
旁注:您的替换品应该更轻,更重要的是,使用html变体进行烘干:
$("#content").html(function(_,html){
return html.replace(template, '<span class="spell_error">$1</span>')
});