在javascript本地存储中保存项目后,我想根据localstorage中保存的密钥检索它们不区分大小写。
例如,如果我将“测试”作为本地存储中的键localstorage.getItem(' test ');不会返回“测试”的值,因为它区分大小写。我希望能够得到这个项目。
有没有办法在没有循环本地存储的情况下执行此操作,并对我在下面的代码中找到的每个密钥使用toLowerCase()
函数:
for (var i = 0; i < localStorage.length; i++){
if( localStorage.key(i).toLowerCase()==searchedKey.toLowerCase() ){
matchingKey =true;
break;
} }
答案 0 :(得分:0)
localStorage
是字典。它存储键/值对。键和值均为string
。
由于字典键必须唯一,因此Test
和test
的值不相同,因此必须将其作为2个单独的条目保存到字典中。
此外,与C#或Java不同,localStorage
没有获取所有添加的键或值的功能。不知道丢失此功能的确切原因。可能是由于安全性所致,因此流氓JavaScript无法查询存储,或者只是使其保持简单。
不区分大小写的键获取值的唯一方法是将它们存储为不区分大小写。
在将键添加到toUpper
之前,可以在键上使用toLower
或localStorage
。但是,微软表示转换为大写字母是最安全的:https://docs.microsoft.com/en-gb/visualstudio/code-quality/ca1308-normalize-strings-to-uppercase?view=vs-2015