2011-09-29 33 views
20

我有2個應用程序與localstorage一起工作,我想知道如何刪除所有以note-和todo-開頭的鍵。我知道localstorage.clear()清除了所有內容,但那不是我的目標。HTML5 Localstorage&jQuery:從某個詞開始刪除本地存儲鍵

這裏是什麼,我有我的localStorage一個例子:enter image description here

,我想刪除所有的todo- *有一個按鈕,點擊所有筆記記錄*與使用jQuery其他按鈕的點擊。

非常感謝

+1

http://stackoverflow.com/questions/3138564/looping-through-localstorage-in-html5-and-javascript –

回答

40
Object.keys(localStorage) 
     .forEach(function(key){ 
      if (/^todo-|^note-/.test(key)) { 
       localStorage.removeItem(key); 
      } 
     }); 
+0

似乎刪除待辦事項,唯一的?奇怪的 – jQuerybeast

+2

RegEx應該是'/ ^(?: todo- | note - )/'。 '?:'將使它成爲一個非捕獲組,這將加快一點。 '/^todo- |^note- /'也應該工作,沒有任何分組。 –

+0

它似乎不是那個問題。我認爲問題在於該應用程序的編碼,因爲我試圖通過螢火蟲刪除該值,當我刷新時,我將它的價值返回。 – jQuerybeast

9

我用類似的方法來@Ghostoy,但我想在參數喂,因爲我把這個從我的代碼中的幾個地方。我無法在正則表達式中使用參數名稱,所以我只是使用了substring。

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

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