我有一个使用JavaScript制作的文件,其中包含网站localstorage的内容。它已被字符串化,并且(现在)由" |"分隔。 我想在每个" |"之后拆分这个字符串。到一个单独的字符串,所以我可以逐个输入每个变量及其值到localstorage,因为据我所知,你不能一次设置多个项目。这是我迄今为止所得到的,但在研究之后我还没有找到除阵列之外的其他解决方案......
<input type="file" id="file" accept=".io">
<div id="contents"></div>
<script>
var X;
document.getElementById('file').addEventListener('change',
function () {
var fr = new FileReader();
fr.onload = function () {
document.getElementById('contents').textContent =
this.result.replace(/,/g,"|").replace(/:/g,",").slice(1,-1);
};
fr.readAsText(this.files[0]);
}
);
localStorage.setItem("test","1223asd3423");
</script>
我感觉我所做的是一种导出/导入本地存储数据的细长且低效的方式,并且有某种解决方案包含for
循环和其他形式的混合JavaScript我还没有成为一名新手。
以下是原始文件如何格式化以供参考的示例:
Settings.io: (.io file extension, not website domain)
{"AB12_Rubicon":"37","AB9":"99","backgroundColor":"#2e2e2e",....}
新字符串
"AB12_Rubicon","37"|"AB9","99"|"backgroundColor","#2e2e2e"|....
期望结果的示例
Newstring1 =&#39;&#34; AB12_Rubicon&#34;,&#34; 37&#34;&#39; Newstring2 =&#39;&#34; AB9&#34;,&#34; 99&#34;&#39;;
答案 0 :(得分:0)
我确定我会编辑这个答案但是什么
如果你得到的是这个输入
{"AB12_Rubicon":"37","AB9":"99","backgroundColor":"#2e2e2e",....}
然后它不是一个字符串它是JSON你没有必要拆分它来获取值。 你必须循环它。
首先,您需要检查JSON是否已字符串化,如果是,则需要将其转换回JSON
检查只需使用console.log(typeof input);
如果是字符串,请使用JSON.parse(input);
现在假设您已将所有对象情况整理出来
这是提取值的代码
for (var key in input){
var current_key = key; // will get value before the ":"
var current_value = input[key]; // value after ":"
// do what ever you need
}
只是因为问题标题是如此的大肆可能会遇到这个问题,看看字符串minupulation us myvariable_with_string.split(',')