Jquery 正则表达式中的括号

Jquery 正则表达式中的括号,jquery,regex,Jquery,Regex,jsFiddle: 目前,这是可行的,但似乎与[abc]的任何其他实例都不匹配。我被告知在这个例子中使用regex global,但是在使用newregexp(匹配“g”)时它将在每个字符上重复,而不是在[abc] 我如何调整它,使[abc]的所有实例变为xyz?使用RegExp方法(这样您可以使用g),但将字符串更改为'\\[abc\\] []是正则表达式中的特殊字符,因此需要对其进行转义。(请注意,还需要转义字符串文字的反斜杠。) 您还可以使用regex文本代替newregexp(…),如下

jsFiddle:

目前,这是可行的,但似乎与[abc]的任何其他实例都不匹配。我被告知在这个例子中使用regex global,但是在使用
newregexp(匹配“g”)时它将在每个字符上重复,而不是在
[abc]


我如何调整它,使
[abc]
的所有实例变为
xyz

使用
RegExp
方法(这样您可以使用
g
),但将字符串更改为
'\\[abc\\]

[]
是正则表达式中的特殊字符,因此需要对其进行转义。(请注意,还需要转义字符串文字的反斜杠。)


您还可以使用regex文本代替
newregexp(…)
,如下:
/\[abc\]/g
使用
RegExp
方法(因此您可以使用
g
),但将字符串更改为
\[abc\]

[]
是正则表达式中的特殊字符,因此需要对其进行转义。(请注意,还需要转义字符串文字的反斜杠。)


您还可以使用正则表达式文字来代替新的正则表达式(…)
,如:
/\[abc\]/g

当您将正则表达式构建为字符串时,必须对特殊字符进行双转义。您可以使用此项,也可以简单地使用文字正则表达式:

var match = '[abc]';
$('div.text:contains(' + match + ')').each(function () {
    $(this).text($(this).text().replace(match, 'xyz'));
});

将正则表达式构建为字符串时,必须双转义
\\
特殊字符。您可以使用此项,也可以简单地使用文字正则表达式:

var match = '[abc]';
$('div.text:contains(' + match + ')').each(function () {
    $(this).text($(this).text().replace(match, 'xyz'));
});
$(this).text().replace(/\[abc\]/g, 'xyz')