我正在创建一个前端页面,用户可以在其中按下按钮来创建文本区域,然后将信息保存在localStorage中。按下加载按钮时,将出现相同数量的文本区域,其内容来自localStorage。问题是,当我从localStorage检索信息时,该值包含“”,我想将其删除。
我尝试过replace(/“([[^”] +(?=“))” / g,'$ 1');
i = localStorage.getItem('AllNum');
// Allnum is the is where the generated textareas are placed
function add() {
//i represents the number of textareas
i++;
$('#alltxt').append('<div class="textarea"><input></input><textarea id="txt' + i + '"></textarea></div>');
}
function save() {
for (var a = 1; a <= document.getElementById("alltxt").childElementCount; a++) {
localStorage.setItem("txt" + a, document.getElementById('txt' + a).value);
}
localStorage.setItem('AllNum', i);
}
function load() {
if (document.getElementById("alltxt").childElementCount < localStorage.getItem('AllNum')) {
for (var i = 1; i <= localStorage.getItem('AllNum'); i++) {
$('#alltxt').append('<div class="textarea"><input></input><textarea id="txt' + i + '">"' + invert(i) + '"</textarea></div>');
}
}
}
function invert(i) {
var a = localStorage.getItem('txt' + i);
a = a.replace(/"([^"]+(?="))"/g, '$1');
return a;
}
https://codepen.io/abooo/pen/RvbOzV?editors=1010
要测试代码,请生成一些文本区域,然后在其中输入一些值,然后按+。之后,重新加载页面。最后单击加载按钮。您可以看到123变成了“ 123”
答案 0 :(得分:1)
问题是您输入的文字周围有""
。
在加载函数中,将"' + invert(i) + '"
更改为' + invert(i) + '
(删除两个"
)。