在JavaScript中使用regexp替换字符串时Firefox出错

时间:2011-08-30 16:37:14

标签: javascript firefox

try{    
  var hdnPassenger = $("#ctl00_ContentPlaceHolder1_hdnPassenger").val(); 
  var newTr = $("#hdnCtl").html(); 
  newTr = newTr.replace(/_ID/g, hdnPassenger); 
}
catch(ex){
  alert(ex);
}

上面的代码在Internet Explorer中工作正常,但在mozilla firefox中显示以下错误

InternalError:正则表达式太复杂

1 个答案:

答案 0 :(得分:0)

对此问题进行了一些研究后,出现此错误的原因有两个:

  1. 实际的正则表达式太复杂(不是在你的情况下,因为你只有/ _ID /)
  2. 您尝试进行替换的字符串的长度(我不知道它是什么,但可能很长)。在某些版本的firefox中似乎有一些硬编码限制,但我无法保证。
  3. 我建议你做两件事:添加hdnPassengernewTr变量的值 - 同时谷歌firefox regular expression too complex - 有大量点击。