Javascript 将转义字符串传递给JQuery($)-函数

Javascript 将转义字符串传递给JQuery($)-函数,javascript,jquery,regex,Javascript,Jquery,Regex,目前我正试图突出显示页面上的元素。因此,我将一个逗号分隔的字符串传递给名为highlight的Javascript函数 highlight("main:box1,main:box2"); 在我在页面上找到带:的ID之前,这一切都很正常。所以我试着用一点正则表达式来逃避他们。事情开始变得有点滑稽了 如果通过将:替换为\:来转义字符串,jQuery函数将不再工作 var string = value.replace(/:/g, "\\\\:"); jQuery("#" + string).css(

目前我正试图突出显示页面上的元素。因此,我将一个逗号分隔的字符串传递给名为highlight的Javascript函数

highlight("main:box1,main:box2");
在我在页面上找到带:的ID之前,这一切都很正常。所以我试着用一点正则表达式来逃避他们。事情开始变得有点滑稽了

如果通过将:替换为\:来转义字符串,jQuery函数将不再工作

var string = value.replace(/:/g, "\\\\:");
jQuery("#" + string).css("color", "red");
如果我将main:替换为“”,并在jQuery函数中写入main\,一切正常

var string = value.replace(/main:/g, "");
jQuery("#main\\:" + string).css("color", "red");
我做错了什么?为什么jQuery函数除了我的转义字符串之外没有其他功能

所需帮助:-(

所附代码示例:


感谢Jan

你在第一次尝试替换时双重逃逸了
\
。你所做的是用
\\:
替换
,即使你在输出时可能看到
\:

你在第一次尝试替换时双重逃逸了
\
。你所做的是replace
\\:
,即使您在输出它时可能会看到
\:

要显式,请使用
var string=value。要显式替换(/:/g,\\:”;
要显式,请使用
var string=value。替换(/:/g,\\:”;