获取js localstorage项不区分大小写

问题描述 投票:2回答:1

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

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

有没有办法做到这一点,而不循环通过本地存储和使用toLowerCase()函数为我找到的每个键,如下面的代码:

    for (var i = 0; i < localStorage.length; i++){
    if( localStorage.key(i).toLowerCase()==searchedKey.toLowerCase() ){
    matchingKey =true;
    break;
    }        }
javascript html5 local-storage
1个回答
0
投票

localStorage是一本字典。它存储键/值对。 Key和Value都是string

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

此外,与C#或Java不同,localStorage没有获得所有添加的键或值的功能。不知道错过此功能的确切原因。这可能是由于安全性,因此流氓JavaScript无法查询存储,或只是为了保持简单。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.