HTML5 Localstorage & jQuery:删除以某个单词开头的本地存储键

Posted

技术标签:

【中文标题】HTML5 Localstorage & jQuery:删除以某个单词开头的本地存储键【英文标题】:HTML5 Localstorage & jQuery: Delete localstorage keys starting with a certain word 【发布时间】:2011-11-27 08:37:42 【问题描述】:

我有 2 个应用程序与 localstorage 一起工作,我想知道如何删除所有以 note- 和 todo- 开头的键。我知道 localstorage.clear() 会清除所有内容,但这不是我的目标。

这是我在本地存储中的一个示例:

我想通过单击按钮删除所有 todo-* 并使用 jquery 单击其他按钮删除所有 note-*。

非常感谢

【问题讨论】:

***.com/questions/3138564/… 【参考方案1】:
Object.keys(localStorage)
      .forEach(function(key)
           if (/^todo-|^note-/.test(key)) 
               localStorage.removeItem(key);
           
       );

【讨论】:

好像只删除了todo-的?奇怪 正则表达式应该是/^(?:todo-|note-)/?: 将使它成为一个非捕获组,这将加快速度。 /^todo-|^note-/ 应该也可以在没有任何分组的情况下工作。 这似乎不是问题所在。我认为问题出在该应用程序的编码中,因为我试图通过 firebug 删除该值,当我刷新时,我将其取回。【参考方案2】:

我使用了与 @Ghostoy 类似的方法,但我想输入一个参数,因为我从代码中的多个位置调用它。我无法在正则表达式中使用我的参数名称,所以我只使用了子字符串。

function ClearSomeLocalStorage(startsWith) 
    var myLength = startsWith.length;

    Object.keys(localStorage) 
        .forEach(function(key) 
            if (key.substring(0,myLength) == startsWith) 
                localStorage.removeItem(key); 
             
        ); 

【讨论】:

以上是关于HTML5 Localstorage & jQuery:删除以某个单词开头的本地存储键的主要内容,如果未能解决你的问题,请参考以下文章

html5 localStorage(本地存储)

[html5]localStorage的原理和HTML5本地存储安全性

html5 localstorage 怎么取存储条数

html5 localstorage能存多少

HTML5 LocalStorage:检查密钥是不是存在[重复]

android html5 localstorage某手机从localstorage中取不到数据