缺少/ RegEx代码

时间:2014-06-13 14:21:49

标签: javascript regex

我尝试将脚本附加到页面,但我得到答案:

无效的正则表达式:缺少/

有人可以看看我的RegEx代码中的问题在哪里?

function init(){

var script   = document.createElement("script");
script.type  = "text/javascript";
script.text  = 'jx = {'+
'b: function () {'+
    'var b = !1;'+
    'if ("undefined" != typeof ActiveXObject) { try {'+
            'b = new ActiveXObject("Msxml2.XMLHTTP");'+
       ' } catch (c) {'+
           ' try {'+
              '  b = new ActiveXObject("Microsoft.XMLHTTP");'+
           ' } catch (a) {'+
              '  b = !1;'+
          '  }'+
      '  } } else { if (window.XMLHttpRequest) try {'+
         '   b = new XMLHttpRequest;'+
        '} catch (h) {'+
         '   b = !1;'+
       ' }'+
        '}'+
       ' return b;'+

  '  },'+
'load: function (b, c, a, h, g) {'+
   ' var e = this.d();'+
   ' if (e && b) {'+
      '  e.overrideMimeType && e.overrideMimeType("text/xml");'+
       ' h || (h = "GET");'+
      '  a || (a = "text");'+
      '  g || (g = {});'+
       ' a = a.toLowerCase();'+
       ' h = h.toUpperCase();'+
      '  b += b.indexOf("?") + 1 ? "&" : "?";'+
      '  var k = null;'+
     '   "POST" == h && (k = b.split("?"), b = k[0], k = k[1]);'+
      '  e.open(h, b, !0);'+
      '  e.onreadystatechange = g.c ? function () {'+
      '      g.c(e)'+
        '} : function () {'+
         '   if (4 == e.readyState)'+
            '    if (200 == e.status) {'+
               '     var b = "";'+
                '    e.responseText && (b = e.responseText);'+
                 '   "j" == a.charAt(0) ? (b = b.replace(/[\n\r]/g, ""), b = eval("(" + b + ")")) : "x" == a.charAt(0) && (b = e.responseXML);'+
                 '   c && c(b)'+
               ' } else g.f && document.getElementsByTagName("body")[0].removeChild(g.f), g.e && (document.getElementById(g.e).style.display = "none"), error && error(e.status)'+
       ' };'+
      '  e.send(k);'+
   ' }'+
'},'+
' d: function () {'+
   ' return this.b()'+
' }'+
'};'+
'alert("loaded");';

document.body.appendChild(script);

}
你知道错了!

1 个答案:

答案 0 :(得分:1)

除了你正在做的事情之外,问题在于你没有逃避反斜杠。 reges

/[\n\r]/g

本身完全没问题,但是你没有写一个文字的RegExp实例,你正在写一个字符串。字符串\n是新行的转义序列。为了解决这个问题,请逃避反斜杠:

var str = '/[\\n\\r]/g';

会做的伎俩