Javascript用RegExp達成replaceAll()

Java 有個很方便的功能,透過 replaceAll() 可以把字串中所有符合的子字串替換成別的字串,這篇文章記錄一下在網路上蒐尋到在 JavaScript 實作的方法。

Javascript 只有 replace,replace 只會替換一次,也就是只會替換第一個遇到的字串!但是透過 Regular Expression 就可以讓 JavaScript 的 replace 也有 replaceAll 的功能!上程式碼。

function replaceAll ( terms, oldChar, newChar ) {
    terms.replace ( new RegExp ( oldChar , "gm" ), newChar );
}

參考資料自 JavaScript 中使用 replace 达到 replaceAll的效果 @ yueguangyuan

參數說明

terms:原始字串
oldChar:要被替換掉的字串
newChar:用來替換的新字串
g:global
m:multiline
另外一個部落格也有一個類似的做法

strings = strings.replace(/find/g,"replace");
// 例如:"你好嗎?我很好".replace(/好/g, "Good")
// 會變成 你Good嗎?我很Good

參考資料:

  1. JavaScript 中使用 replace 达到 replaceAll的效果 @ yueguangyuan
    http://yueguangyuan.iteye.com/blog/31744
  2. jQuery: find and replace all the occurances from string @ Php Bugs
    http://phpbugs.wordpress.com/2011/06/16/jquery-find-and-replace-all-the-occurances-from-string/

    發佈留言

    發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

    這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料