var thetag = "B";
var re = new RegExp("\\["+ thetag +"\\]", "gi");//在字符串里 \ 是需要转义的

解决方案 »

  1.   

    在Antechinus JavaScript Editor里面  ("\[" + thetag + "\]") 运行的时候没有问题。
    换上了"\\["+ thetag +"\\]"  就没结果了。
      

  2.   

    在 editor 里没反应不要紧, JS脚本最终写好是在浏览器里运行的,...
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var thetag = "B";
    var re = new RegExp("\\[("+ thetag +")\\]", "gi");
    var str = "123[b]45[B]6";
    str = str.replace(re, "<$1>");
    alert(str);
    //-->
    </SCRIPT>
      

  3.   

    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var thetag = "B";
    var re = new RegExp("\[" + thetag + "\]", "g");
    var str = "12b345B6";
    str = str.replace(re, "XXXXX");
    alert(str);
    //-->
    </SCRIPT>也好使呀。
      

  4.   

    thetag = "B"
    eval("\[" + thetag + "\]");运行时变成
    thetag = "B"
    [B]==============================
    明显语法不正确,当然不行
    reg = "/\\[" + thetag + "\\]/g"
    eval(reg);
      

  5.   

    reg = "/\\[" + thetag + "\\]/g"
    用这个的话,结果没有替换成功
    而且var re = new RegExp("\[" + thetag + "\]", "g");好使
      

  6.   

    你替换的是 [b] 还是字符 b ??若是[b]则用我那个, 若是字符, 那中括号都用不着:
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var thetag = "B";
    var re = new RegExp(thetag, "gi");
    var str = "123b45B6";
    str = str.replace(re, "<B>");
    alert(str);
    //-->
    </SCRIPT>
      

  7.   

    var re = new RegExp();
    re.ignoreCase = true;
    re.global = true
    thetag = "B"
    re.compile("\[" + thetag + "\]");
    对于这段代码应该怎么处理?