Javascript-替换页面中所有以

时间:2018-12-19 01:10:48

标签: javascript replace

我撞墙了。 我试图将“ Person 1(ValueFromPreviousField)”中以“ Person 1”开头的页面中的所有字符串替换。

我无法应用'Person 1'逻辑开头的替换整个字符串,因此,每次我点击更新按钮时,前一个“(ValueFromPreviousField) ”停留在字符串的结尾(我显然不希望这样)。

function test() {
  var N1 = document.getElementById("Name1").value;
        var N2 = document.getElementById("Name2").value;
  document.body.innerHTML = document.body.innerHTML.replace(/Person 1 */g, "Person 1 (" + N1 +")").replace(/Person 2/g, "Person 2 (" + N2 +")");

}

这是一个带有示例html的小提琴:http://jsfiddle.net/ndt50xgo/20/

PS:由于这是由简码生成的html,因此我无法为所有这些范围分配类或ID。

1 个答案:

答案 0 :(得分:1)

考虑一下:如果您以x y开头并将x替换为x a,那么您将以x a y结尾。现在,如果之后用x替换x b,则最终会得到x b a y,因为没有任何原因导致您的文本首先恢复为x y。同样适用于您的示例。您的正则表达式还应该匹配您添加的任何文本,以确保也将其替换。

因此,它可能有/Person 1 */g而不是/Person 1( \(.*?\))?/g,当然还有/Person 2 */g的{​​{1}}。