当gKeyword等于如下的四种情况的时候:
gKeyword = "["; 
gKeyword = "]";
gKeyword = "(";
gKeyword = ")";执行下面的语句报错:
new RegExp("(" + replaceReg(gKeyword) + ")", "g")
//正则表达式转义
function replaceReg(str){
      return str.replace(new RegExp("\\?","gm"),"\\?").replace(new RegExp("\\+","gm"),"\\+").replace(new RegExp("\\)","gm"),"\\)").replace(new RegExp("\\(","gm"),"\\(")
      .replace(new RegExp("\\]","gm"),"\\]").replace(new RegExp("\\[","gm"),"\\[").replace(new RegExp("\\*","gm"),"\\*").replace(new RegExp("\\\\","gm"),"\\\\");      
}当gKeyword = "[" 的时候报错如下:
行: 228
错误: 正则表达式中缺少 ']'如何做才能在gKeyword的值等于这四种情况的时候 不报错呀!!!

解决方案 »

  1.   

    <script type="text/javascript">
    gKeyword = ["[", "]","(",")","*","\\"];
       for(var i in gKeyword){
        var reg=new RegExp("(\\" + gKeyword[i] + ")", "g");
        var b="[]()*\\";
        alert(gKeyword[i]+":"+reg.test(b));
       }
    </script>
    这样试试
      

  2.   

    <script type="text/javascript">
    gKeyword = ["[", "]","(",")","*","\\","a"];
    function replaceReg(str){
         return str.replace(new RegExp("\\?","gm"),"\\?")
                   .replace(new RegExp("\\+","gm"),"\\+")
      .replace(new RegExp("\\)","gm"),"\\)")
      .replace(new RegExp("\\(","gm"),"\\(")
                   .replace(new RegExp("\\]","gm"),"\\]")
      .replace(new RegExp("\\[","gm"),"\\[")
      .replace(new RegExp("\\*","gm"),"\\*")
      .replace(new RegExp("\\\\","gm"),"\\\\");  
       }
       for(var i in gKeyword){
        var reg=new RegExp("(\\" + gKeyword[i] + ")", "g");
        var b="[]()*\\a";
        alert(gKeyword[i]+":"+reg.test(b));
       }
    </script>
    不知这是不是你想要的