Javascript - 替换以页开头的所有字符串

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (212)

我遇到阻碍了。我正在尝试用“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 +")");

}

PS:由于这是由短代码生成的html,我不能将类或id分配给所有这些跨度。

提问于
用户回答回答于

问题在于Regex。您将字符串替换为包含旧值的另一个字符串。因此,正则表达式/Person x *将始终替换字符串的开头部分。

而是使用/Person x$/。该$定义中没有其它字符应该出现在你的字符串之后。因此,在替换字符串之后,现在会发生一些事情,因此正则表达式找不到它,并且您的函数不会替换字符串。

扫码关注云+社区

领取腾讯云代金券