添加特定单词的范围

Cor*_*ell 1 javascript regex jquery

我试图将span添加到这样的特定单词:

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

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

Den*_*ret 6

你会混淆正则表达式文字和字符串.

用它来创建你的正则表达式:

var template = new RegExp("(" + value + ")", 'g');
Run Code Online (Sandbox Code Playgroud)

正则表达式文字是这样的:

/(something)/
Run Code Online (Sandbox Code Playgroud)

没有引用.但由于它是一个文字,你不能用你的代码构建它,所以这就是你必须使用RegExp构造函数的原因.

旁注:您的替换品应该更轻,更重要的是,使用html变体将其作为回调函数:

$("#content").html(function(_,html){
    return html.replace(template, '<span class="spell_error">$1</span>')
});
Run Code Online (Sandbox Code Playgroud)