How to replace RegExp capture groups?

Viewed 4932

In a string, I need to replace all occurences of [A], "A", 'A' and _A_ with [X], "X", 'X' and _X_. I tried this answer but it's giving a weird result (code below). I use new RegExp because it allows interpolating a variable -- A and X are just an example.

// CAPTURE GROUPS:       |------1-----|2|-----3------|
var regexp = new RegExp('(\'|\"|\_|\[)(A)(\'|\"|\_|\])', 'g')
var string = ' [A] _A_ "A" \'A\' A BAB "B" '
string.replace(regex, '$1X$3')

// ORIGINAL: [A] _A_ "A" 'A' A BAB "B" 
// EXPECTED: [X] _X_ "X" 'X' A BAB "B"
// ACTUAL:   [X] XXX XXX XXX X BXB XBX
1 Answers
Related