function getv(y)
{
s=y

//return s
return s.replace(/t/g, "1")
}  var re = new RegExp("\\\]([^\\\]\\\[]*)\\\[","g");alert("[tree]tettetete[eeeeeee][te]".replace(re, function($1){return getv($1)}))

解决方案 »

  1.   

    var re = new RegExp("(\\\]([^\\\]\\\[]*)\\\[)|(^([^\\\]\\\[]*)\\\[)|(\\\]([^\\\]\\\[]*))$","g");alert("tettetete[eeeeeee][te]tesf".replace(re, function($1){return getv($1)}))
    补充下
      

  2.   

    我想知道,为什么要用三个\来转义以获得一个[
    用function($1)又是为何,为什么不能直接用RegExp.$1,不好意思,我很想知其所以然
      

  3.   

    function getv(y)
    {
    s=y

    //return s
    return s.replace(/t/g, "1")
    }  var re = new RegExp("]([^\[]*)","g");alert("[tree]tettetete[eeeeeee][te]".replace(re, function($1){return getv($1)}))