通常替换全部匹配字符串的做法是:var str="test";
var regS = new RegExp(str,"gi");
alert(s.replace(regS,"test-test-test")); //全部替换但是如果str变量中含有{[等特殊字符,怎么办?高手赐教!

解决方案 »

  1.   

    var str="[test}";
    var regS = new RegExp(str.replace(/[(){}.+*?^$|\\\[\]]/g, "\\$&"), "gi");
    var s = "[test]-[test}-{test}";
    alert(s.replace(regS, "zswang 路过!")); //全部替换
      

  2.   


    谢谢,str.replace(/[(){}.+*?^$|\\\[\]]/g, "\\$&")中的\\$&是什么意思?
      

  3.   

    str.replace(/[(){}.+*?^$|\\\[\]]/g, "\\$&")中的\\$&是什么意思?谁帮忙详细解释一下?
      

  4.   


    var str="[test}";
    var regS = new RegExp(str.replace(/[(){}.+*?^$|\\\[\]]/g, "\\$&"), "gi");
    var s = "[test]-[test}-{test}";
    alert(s.replace(regS, "zswang 路过!")); //全部替换  这个用法非常好,但是也有缺点,就是让人不容易看懂!哈哈!
      

  5.   

    $&匹配到的整个字符串
    $1匹配的第一组
    $2匹配的第二组