2014-11-03 69 views
0

我有一個字符串JavaScript的正則表達式跳過方括號

var oldName = "questions[0].answers[3].answer"; 

我要遞增的答案部分[4](當前值是什麼+1)。 如果它是questions[0].answers[6].answer它應該成爲問題[0] .answers [7] .answer。

我嘗試了以下,但我沒有得到任何結果。

var matches = oldName.match(/(\d+)answers(\d+)/) 
var number1 = Number(matches[1]); 
var number2 = Number(matches[2]); 

我需要在兩個單獨的變量中存儲字符串中的數字。

+1

你爲什麼要這樣做? – nhahtdh 2014-11-03 09:21:13

+1

,因爲我使用jQuery克隆一個元素,克隆後我需要增加元素的名稱或ID,並使元素在文檔中唯一。 – Ajey 2014-11-03 09:22:25

回答

1

它是簡單的做到這一點,只是提供一個替代功能String.replace

str.replace(/answers\[(\d+)\]/, function (_, $1) { 
    return "answers[" + (+$1 + 1) + "]"; 
}); 

(如果你想在參數替換功能的解釋,你可以閱讀MDN以上鍊接,或my answer here

但是否這是解決更大問題的好方法,我不知道。

+0

你爲什麼拒絕我的編輯? – nicael 2014-11-03 09:37:21

+0

'var oldname = oldname.replace ...'是錯誤的代碼,我不認爲有必要對代碼進行更多的更改。 – nhahtdh 2014-11-03 09:38:52

+0

對不起,我沒有拒絕你的編輯,我的弟弟在PC上。 – Ajey 2014-11-03 09:59:15