javascript - 使用 replace 方法用字符串替换变量中出现的内容

标签 javascript replace

我在将一个字符串的所有模式替换为另一个字符串时遇到了麻烦。我的字符串看起来像这样

"<TD>&nbsp;&nbsp;&nbsp;&nbsp;1.Rule<SPAN> <A style="TEXT-DECORATION: underline" id=RULE#I#000002$000000 class=anchorTag NAME:RULE#I#000002$000000?>xxxx</A>&nbsp;
<SCRIPT>function show(id){document.getElementById(id).style.visibility = "visible";}function hide(id){document.getElementById(id).style.visibility = "hidden";}</SCRIPT>
<NOBR><SPAN style="CURSOR: hand" id=RULE#T#000002$000000NAME:RULE#T#000002$000000 onmouseover="show('RULE#T#000002$000000')" onmouseout="hide('RULE#T#000002$000000',event)" onclick="button_click('RULE#T#000002$000000');" valign="top"><IMG style="VISIBILITY: hidden; CURSOR: hand" id=RULE#T#000002$000000 title="Maintain Rule Title" align=middle src="../../IRM/GBRFFNM/images/text_icon.png" width=12 height=12></SPAN></NOBR><NOBR><SPAN style="CURSOR: hand" id=RULE#A#000002$000000NAME:RULE#A#000002$000000 onmouseover="show('RULE#A#000002$000000')" onmouseout="hide('RULE#A#000002$000000')" onclick="javascript:button_click('RULE#A#000002$000000',event)" valign="top"><IMG style="VISIBILITY: visible; CURSOR: hand" id=RULE#A#000002$000000 title="Add Rule" align=middle src="../../IRM/GBRFFNM/plus.gif" width=12 height=12></SPAN></NOBR></SPAN></TD>" 

我需要将 ID RULE#A#000002$000000 替换为 RULE#A#000003$000000。这些 ID 是动态的。我在流中搜索堆栈,发现我需要创建正则表达式。这就是我所做的。

var lv_html = parent.innerHTML; ///Contains the string abovwe

  var array = _eleid.split('#');
  var array1 = array[2].split('$');
  lv_id = array1[0] + '$';  // = RULE#A#000002$000000
  var replace_id = stmt_cntr + '$' ; // = RULE#A#000003$000000
  var  html1 =  lv_html.replace(new RegExp( lv_id , 'g'), replace_id);

但我发现这不起作用。我在这里错过了什么吗?

最佳答案

您需要转义要从中创建正则表达式的字符串:

function escapeRegExp(str) {
  return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}

... new RegExp( escapeRegExp(lv_id) , 'g') ...

您的字符串包含一个 $,它在正则表达式中具有特殊含义(行尾)。

关于javascript - 使用 replace 方法用字符串替换变量中出现的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16653300/

相关文章:

javascript - 将字符串作为正则表达式模式传递给 String.prototype.replace

linux - 如何转换文件中的所有 unix 日期?

javascript - 如何使用正则表达式替换部分字符串?

javascript - 使用正则表达式结果集的一部分进行匹配

从R中的多列中删除字符串

javascript - 你会怎么写一个 "constructor"

javascript - 如何从 Javascript 对象访问属性?

javascript - 将自定义类添加到 Angular 选择的容器

javascript - 从 WordPress 中的自定义插件加载脚本

javascript - 为什么将 continue 与 for-let 一起使用会导致无限循环?