2014-12-05 17 views
0

我有一個字符串。數據來自文本區域,幷包含方括號內的(變化的)內容的出現。對所有出現在字符串中的內容運行函數

我想對用方括號括起來的字符串內容運行函數(例如替換),然後更新原始字符串以反映所做的更改。

not this [potentially act on this token] not this [potentially act on this token] not this

我認爲以下一些可能會涉及,但我無法弄清楚如何實現一個有效的解決方案。我不想使用jQuery或外部庫。

  • 匹配+正則表達式Something like this
  • indexOf。如果無法單獨使用RegEx,可能需要獲取匹配內容。
  • 對於每個。由於方括號內有大量內容實例。

這是一個起點JSFiddle

如果有人可以得到任何幫助,我會很感激。

非常感謝。

+0

「上運行的軟件功能」?解釋 – 2014-12-05 13:11:39

+0

它可以很容易地用'replace'完成,因爲它接受一個回調函數作爲替換參數。 – 2014-12-05 13:12:01

回答

1

因此,您的jsfiidle幾乎涵蓋了所有您需要的功能,除了替換函數可以進行回調。此回調接收一個參數是匹配的字符串,無論您返回代替了比賽

user_input = user_input.replace(/\[.*\]/gi,function(match){ 
    return match + "foo"; 
}); 

http://jsfiddle.net/fdtxvyo7/6/

+0

完美!真的非常感謝你! – Greg 2014-12-05 13:52:58

1

嘗試這樣的事情......

var startEnd = user_input.match(/(\[.*?\])/g); 

startend現在是括號內的值,你現在可以使用查找/替換的數組。

+0

這應該適用於我一直想要做的事情。非常感謝@rfornal! – Greg 2014-12-05 14:02:21

相關問題