获取js localstorage项不区分大小写

时间:2016-07-29 14:43:53

标签: javascript html5 local-storage

在javascript本地存储中保存项目后,我想根据localstorage中保存的密钥检索它们不区分大小写。

例如,如果我将“测试”作为本地存储中的键localstorage.getItem(' test ');不会返回“测试”的值,因为它区分大小写。我希望能够得到这个项目。

有没有办法在没有循环本地存储的情况下执行此操作,并对我在下面的代码中找到的每个密钥使用toLowerCase()函数:

    for (var i = 0; i < localStorage.length; i++){
    if( localStorage.key(i).toLowerCase()==searchedKey.toLowerCase() ){
    matchingKey =true;
    break;
    }        }

1 个答案:

答案 0 :(得分:0)

localStorage是字典。它存储键/值对。键和值均为string

由于字典键必须唯一,因此Testtest的值不相同,因此必须将其作为2个单独的条目保存到字典中。

此外,与C#或Java不同,localStorage没有获取所有添加的键或值的功能。不知道丢失此功能的确切原因。可能是由于安全性所致,因此流氓JavaScript无法查询存储,或者只是使其保持简单。

不区分大小写的键获取值的唯一方法是将它们存储为不区分大小写。

在将键添加到toUpper之前,可以在键上使用toLowerlocalStorage。但是,微软表示转换为大写字母是最安全的:https://docs.microsoft.com/en-gb/visualstudio/code-quality/ca1308-normalize-strings-to-uppercase?view=vs-2015