一直都不是很理解javascript为什么没有提供字符串的replaceAll方法,搞得大家要自己来写。
网上一种很流行的写法是:

  1. String.prototype.replaceAll = function(s1, s2) {  
  2.     return this.replace(new RegExp(s1, "gm"), s2);   
  3. };   
  4. function replaceAll(str, s1, s2) {  
  5.     return str.replace(new RegExp(s1, "gm"), s2);  

也是我经常用的方法。
不过前段时间被一个很弱的问题纠缠了很久,我想要将“\”,替换成"\\"
str = "\\aaabbb";
str.replaceAll("\\", "\\\\");
可是一直报错让我不知所以,后来仔细研读代码恍然大悟应该这么写:
str.replaceAll("\\\\", "\\\\");
写出来自己感觉比较有意思,就索性记下来,
由于replaceAll使用正则表达式对象模拟的,那么"\\\\"在javascript中应该转义成"\\",而RegExp又将"\\"转义成"\"。
呵呵,被这么个问题郁闷了一个多小时,下回要小心了