在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;
} }
localStorage
是一本字典。它存储键/值对。 Key和Value都是string
。
由于字典键必须是唯一的,因此Test
和test
的值不相同,因此必须作为2个单独的条目保存到Dictionary中。
此外,与C#或Java不同,localStorage
没有获得所有添加的键或值的功能。不知道错过此功能的确切原因。这可能是由于安全性,因此流氓JavaScript无法查询存储,或只是为了保持简单。
通过不区分大小写的Key获取值的唯一方法是将它们存储为不区分大小写。
在将它添加到toUpper
之前,您可以在Key上使用toLower
或localStorage
。但是,微软称转换为大写是最安全的:https://docs.microsoft.com/en-gb/visualstudio/code-quality/ca1308-normalize-strings-to-uppercase?view=vs-2015