2016-08-16 91 views
0

之間我無法弄清楚如何從一個字符串中刪除[ ]所以像所有項目:正則表達式來刪除[]和

option = 'Texture[0]'成爲option = 'Texture'

這裏是我試過,不知道爲什麼它不工作

option = option.replace(new RegExp('/\[[^\]]*\]/'), '');

+0

不使用正則表達式你可以使用split。看看這個[demo](https://jsfiddle.net/pt7nk9zw/) – guradio

回答

2

在JS字符串文字,你要逃跑反斜槓。也就是說,要創建一個包含單個反斜槓的字符串,您可以使用文字'\\'。如果你想用字符串表示正則表達式\[,你需要'\\['(對於你的特定正則表達式中的每個反斜槓等等)。

此外,/字符不是正則表達式的一部分,在JS中它們表明您正在使用正則表達式。因此,如果您使用的字符串爲new RegExp(),那麼而不是包括開頭和結尾的/

所以:

option = option.replace(new RegExp('\\[[^\\]]*\\]'), ''); 

但是,而不是使用new RegExp()用字符串,它是簡單的只是用文字正則表達式:

option = option.replace(/\[[^\]]*\]/, ''); 

如果您有與[...]多例更長的字符串,類似於'Texture[0] Colour[3] Size[2]'那麼你需要一個全局替換,你可以通過在正則表達式中添加g標誌來做如下操作:

option = option.replace(/\[[^\]]*\]/g, '');