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
參考資料:
- JavaScript 中使用 replace 达到 replaceAll的效果 @ yueguangyuan http://yueguangyuan.iteye.com/blog/31744
- 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/