我撞墙了。 我试图将“ 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。
答案 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}}。