每次出现在字符串中时,将部分字符串替换为新值,JavaScript
Replace part of string with new value for each time it appears in string, JavaScript
我想用 localStorage 中的玩家名称替换字符串中的 ":player:"
。如果字符串中有多个 ":player:"
,我是否想每次在字符串中出现时用不同的名称替换 ":player:"
,例如
假设我有一个看起来像这样的字符串:
str = ":player: drink 5 sips if :player: has 5 fingers"
那我要输出就可以了
str = "Alex drink 5 sips if Harry has 5 fingers"
我的 localStorage 数据如下所示:
namesArray = [["Alex",0],["Harry",1]]
我尝试了 str.replace() 的不同变体,但它没有按照我想要的方式工作...
是否存在这样的东西?
forEach(str.includes(":player:") => {
str.replace(":player:", localStorageName[randomNumber].name);
});
使用replaceAll()
方法和一个函数作为替代。然后它可以从 localStorage
检索并在每次调用时递增索引。
localStorage.setItem('name', JSON.stringify(['Alex', 'Harry']));
let str = ":player: drink 5 sips if :player: has 5 fingers";
let index = 0;
str = str.replaceAll(':player:', () => JSON.parse(localStorage.getItem('name'))[index++]);
console.log(str);
我想用 localStorage 中的玩家名称替换字符串中的 ":player:"
。如果字符串中有多个 ":player:"
,我是否想每次在字符串中出现时用不同的名称替换 ":player:"
,例如
假设我有一个看起来像这样的字符串:
str = ":player: drink 5 sips if :player: has 5 fingers"
那我要输出就可以了
str = "Alex drink 5 sips if Harry has 5 fingers"
我的 localStorage 数据如下所示:
namesArray = [["Alex",0],["Harry",1]]
我尝试了 str.replace() 的不同变体,但它没有按照我想要的方式工作...
是否存在这样的东西?
forEach(str.includes(":player:") => {
str.replace(":player:", localStorageName[randomNumber].name);
});
使用replaceAll()
方法和一个函数作为替代。然后它可以从 localStorage
检索并在每次调用时递增索引。
localStorage.setItem('name', JSON.stringify(['Alex', 'Harry']));
let str = ":player: drink 5 sips if :player: has 5 fingers";
let index = 0;
str = str.replaceAll(':player:', () => JSON.parse(localStorage.getItem('name'))[index++]);
console.log(str);