我有一个程序将数据存储在字符串数组中。 我使用特殊字符(某种人类可读的字符)从数组元素中检索数据。我使用JS中的.match函数来做到这一点。
var newAddress =siteinfo[selectedRecord].match(",siteAddr:(.*),siteLoc:")[1];
我有一些这样的字段存储在数组中,以便存储不同类别的信息。 我正在尝试使该程序允许我一次替换多个值。 我尝试使用.replace函数,但知道它的局限性,即仅在字符串的第一部分被更改的情况下创建新字符串。
siteinfo[selectedRecord]=stringifiedData.replace(newSite,projectName);
localStorage.setItem("sites", JSON.stringify(siteinfo));
var stringifiedData = JSON.stringify(siteinfo[selectedRecord]);
我尝试研究正则表达式和其他示例,以了解如何一次替换多个variabel。例如我想为“ newAddress”和其他变量(例如“ newLocation”和“ newSite”)中的其他变量更新适当的数组元素。
我不确定如何实现我的目标,但是通过一次仅更新数组的一部分来对我进行一定程度的更新,这在数组中增加了很多反斜杠,这远非理想。 到目前为止,这是我一直在做的事情:
var stringifiedData = JSON.stringify(siteinfo[selectedRecord]);
siteinfo[selectedRecord]=stringifiedData.replace(newLocation,location);
localStorage.setItem("sites", JSON.stringify(siteinfo));
var stringifiedData = JSON.stringify(siteinfo[selectedRecord]);
siteinfo[selectedRecord]=stringifiedData.replace(newPlantNr,plantNumer);
localStorage.setItem("sites", JSON.stringify(siteinfo));
var stringifiedData = JSON.stringify(siteinfo[selectedRecord]);
siteinfo[selectedRecord]=stringifiedData.replace(newLocation,location);
localStorage.setItem("sites", JSON.stringify(siteinfo));
我一直在从HTML页面调用该函数,并注意到我收到一条消息,说我的本地存储配额已超出,例如 无法在“存储”上执行“ setItem”: ,Chrome正在显示。 确实没有那么多数据,但是当我查看使用当前方法存储的数据时,由于常量JSON.stringify操作存储了每个单独的更改,因此会存储很多反斜杠。 下图显示仅运行一次更新功能后的问题。