在一個字符串,我需要[X]
,"X"
,'X'
和_X_
更換的[A]
,"A"
,'A'
和_A_
所有出現。我試過this answer,但它給出了一個奇怪的結果(下面的代碼)。我使用new RegExp
,因爲它允許插入一個變量 - A
和X
只是一個例子。如何替換RegExp捕獲組?
// 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
當你從構建這樣的字符串正則表達式,反斜槓轉義字符必須**翻番**。 – Pointy
爲了防止指出(\ * g \ *)指出什麼,使用正則表達式文字語法而不是構造函數。 – Christoph
@只在方括號**工作之前,@加倍反斜槓**! - 但是加倍其他人給出語法錯誤,只是爲了記錄。 –