2012-09-06 37 views
1

我試圖得到一個圓託槽裏面的內容選擇內部roundbracket內容,使用正則表達式

例如..如果我們有像var str="test exp (content needed)"

內容我試圖讓STR值「內容需要「;我如何使用正則表達式來實現它?我想看看情況,如果該字符串有一個像var str="test exp (content needed) test (tst)"

回答

0

試試這個圓括弧超過一個OCCURENCES:

var m = /\(([^)]*)\)/.exec(str); 
str = m[1]; 

剛一說明:記住,簡單的情況下,最好使用普通字符串的方法,如indexOfsubstring,因爲它們通常對您而言更快更清晰。例如:

var i1 = str.indexOf("("), i2 = str.indexOf(")"); 
str = str.substring(i1, i2); 

如果你想匹配所有括號之間的序列,你可以試試這個:

var m = str.match(/\([^)]*\)/g); 

現在m包含所有括號內的內容,包括括號。如果你想獲得只是內部內容,試試這個:

m = m.map(function(match) {return match.slice(1, -1);}); 

請記住,這不適用於IE8和更早的版本,因爲它不支持map馬託數組。要麼使用polyfill,要麼使用經典的for循環。

+0

它顯示.match不是函數 – Sam

+0

@Sam給我一秒,我正在編輯:) – MaxArt

+0

這是一個錯誤..我編輯了這個問題。 – Sam