添加特定单词的范围

时间:2013-07-19 16:05:03

标签: javascript jquery regex

我正在尝试为这样的特定单词添加跨度:

var value = "eror";
var template = "/(" + value + ")/g";
$("#content").html($("#content").html().replace(template, '<span class="spell_error">$1</span>'));

这是我的fiddle。我尝试使用我在这里看到的解决方案,但它似乎不起作用。不知道为什么? 谢谢

1 个答案:

答案 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>')
});