不是很清楚“怎么把[abc][/abc]变为空的”,估计是我下边的第二种replace的方法:
<script>
function blacketReplace1(str)
{
    var tmpstr = "";
    while (tmpstr != str) {
        tmpstr = str;
        str = str.replace(/\[([^\]]*)\]([^\[]*)\[\/([^\[]*)\]/g,
                function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10) {
                    return "[" + $1 + "][/" + $3 + "]";
                });
    }
    return str;
}
str = "[abc]dfsdfds[/abc][fdls]";
alert(blacketReplace1(str));
function blacketReplace(str)
{
    var tmpstr = "";
    while (tmpstr != str) {
        tmpstr = str;
        str = str.replace(/(\[)([^\]]*)(\])([^\[]*)(\[\/)([^\[]*)(\])/g,
                function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10) {
                    return $4;
                });
    }
    return str;
}str = "[abc]dfsdfds[/abc][fdls]";
alert(blacketReplace(str));</script>