2014-05-15 38 views
2

交換所有字符出現的最佳方式是什麼?所以,我想基本完成的是用雙引號替換所有雙引號字符,用雙引號替換所有單引號。交換字符

我頭上最高的想法包括3個步驟。簡單地說,我會通過一個替換一個通過Ç然後b然後一個通過b。但是,我認爲這不是一個好方法。

所以,問題是,這裏最好的辦法是什麼?

+0

需要這裏的更多細節,你要做到這一點的您的網站或其代碼的文字? 1個特定元素還是全部? –

+0

嘗試使用一些獨特的字符而不是a,b或c。你的想法對我來說聽起來不錯。 –

回答

5

如何與一個回調正則表達式

str.replace(/('|")/g, function(x) { 
    return x=='"' ? "'" : '"'; 
}); 

FIDDLE

+0

優秀的答案兄弟。節省了一天的努力。這是我喜歡的stackoverflow。精湛。>!豎起大拇指!! (僅供參考:我很快就會更新問題的原因;一旦我確信這個問題)。再次感謝。! :) –

1

你的做法實際上是最優化的。在JavaScript中,它只是一條線:

x.replace(/'/g, '\x01').replace(/"/g, "'").replace(/\x01/g, '"') 

更靈活,雖然slower將是一個回調函數:

replacements = { '"': "'", "'": '"' etc } 

x.replace(/['"]/g, function($m) { return replacements[$m] }) 

http://jsperf.com/3repl-vs-callback

+0

我猜是否回調比解析字符串三次慢取決於? – adeneo

+0

@adeneo:我爲此創建了一個jsperf。 – georg

+0

啊,我很抱歉,我錯過了這個..讓我也經歷這個..!..謝謝! –