Javascript字符串#replaceAll仅在一个实例上工作
我有一个文本主体,方括号内有一些字符串,比如[value],我正在尝试运行一个函数,让用户为每个[…]输入一个值。我的大部分工作正常,但当我对更改的主体进行console.log时,只有一些值发生了更改。其中一些具有html标记,如Javascript字符串#replaceAll仅在一个实例上工作,javascript,Javascript,我有一个文本主体,方括号内有一些字符串,比如[value],我正在尝试运行一个函数,让用户为每个[…]输入一个值。我的大部分工作正常,但当我对更改的主体进行console.log时,只有一些值发生了更改。其中一些具有html标记,如[Hello],并且它们不会被更改。我只是不知道如何克服它 let data = $('#elm1').val(); console.log(data); let newData; function getWords() { let words
[Hello]
,并且它们不会被更改。我只是不知道如何克服它
let data = $('#elm1').val();
console.log(data);
let newData;
function getWords() {
let words = data.match(/[^[\]]+(?=])/g);
console.log(words);
words.forEach(function(word) {
console.log(word);
let input = prompt("Enter value to replace: "+word);
newData = data.replaceAll("["+word+"]", input);
});
console.log(newData);
}
问题是每次运行
forEach
时,它只是更新一个单词,并用最后更新的单词显示正文
我通过添加data=newData
修复了这个问题,当时循环的迭代恰好保存了上一个更改,然后再进行下一个更改
let data = $('#elm1').val();
console.log(data);
let newData;
function getWords() {
let words = data.match(/[^[\]]+(?=])/g);
console.log(words);
words.forEach(function(word) {
console.log(word);
let input = prompt("Enter value to replace: "+word);
newData = data.replaceAll("["+word+"]", input);
data = newData; //Added this
});
console.log(newData);
}
请单击编辑,然后单击
[]
,并提供一个我实际上认为我知道这个问题,但仍然不知道如何解决。每次运行foreach时,它都会更新数据,而不是重新更新newDat。HmmmI已经修复了它,在替换行下我添加了data=newData
,因此它不断得到更新。每次都没有更新一个部件