2015-04-30 69 views
0

我想一個字符串轉換這樣用正則表達式在數字周圍添加大括號?

var string = "3*v0-v1/v12" 

一個像這樣只用一個正則表達式:

var result = "3*v[0]-v[1]*v[12]" 

棘手的部分是添加加括號,有點像當數字:

var result = string.replace(/v\d{1,2}/g, /REGEX HERE/) 

回答

3

這應該做的伎倆:

var result = string.replace(/v(\d{1,2})/g, 'v[$1]'); 

括號創建一個組,而$1是指該組反向引用:

enter image description here

+0

不工作,我得到: 「3 * V [$ 1] -v [$ 1] * v [$ 1]「 – holalluis

+1

在JavaScript中?你有括號嗎?我可以拉起一個JavaScript控制檯,準確地輸入它,它完美地工作。如果你省略了括號,你會得到'$ 1'的唯一原因。 –

+0

剛纔在控制檯中運行它給了我正確的答案 –