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

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

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

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

非常感谢

【问题讨论】:

标签: javascript jquery html local-storage


【解决方案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); 
            } 
        }); 
}

【讨论】:

    猜你喜欢
    • 2012-07-06
    • 2019-01-18
    • 2015-03-02
    • 2011-03-27
    • 2014-08-13
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 2018-05-05
    相关资源
    最近更新 更多