2014-03-01 85 views
2

我試圖替換不需要的部分字符串使用JavaScript匹配正則表達式模式。這在功能上等同於在GNU grep中使用-v標誌來反轉結果。這裏有一個例子:替換與正則表達式不匹配的字符串的一部分

// I want to replace all characters that don't match "fore" 
// in "aforementioned" with "*" 

'aforementioned'.replace(new RegExp(pattern, 'i'), function(match){ 
    //generates a string of '*' that is the length of match 
    return new Array(match.length).join('*'); 
}); 

我找了pattern一個正則表達式。這將是與(fore)相反的情況。我已經四處搜索,但一直未能實現任何相關問題的答案,以滿足我的需求。這裏是一個列表,無論如何,也許它會爲我們指出了正確的方向:

回答

5

如果我理解正確的話,這應該是一個可能的解決方案:

'aforementioned'.replace(new RegExp(pattern + '|.', 'gi'), function(c) { 
    return c === pattern ? c : '*'; 
}); 

>> "*fore*********" 
+0

+1這比我的回答好得多 – anubhava

+1

這太棒了。謝謝 :) – Brannon

相關問題