2017-08-03 38 views
0

這是我第一次使用socket.io處理數據庫,並且遇到問題。 我在我的數據庫中有一些標記爲「artid,artimg,artimg」的對象。 Artid有多個標籤爲「Artifact001」,「Artifact002」,「Artifact003」等的條目。我試圖從字符串中刪除單詞「Artifact」,只留下數字。但是,當我試圖使用.replace表達式時,它會使用localStorage.getItems()行來代替'artid'中的內容。是否有可能編輯artid,還是我必須直接在數據庫中執行?請指教。查找並刪除數據庫中啓動的字符串中的字

socket.on('toClient', function (data) { 
    for (var i = 0; i <data.DBarray.length ; i++) { 
    console.log(data.DBarray[i]); 
    localStorage.setItem(i.toString()+"artid", data.DBarray[i].artid); 
    //omit other values for now 
    } 
}); 

$(document).ready(function() { 
    console.log('localStorage length: ' + (localStorage.length)/8); 
    for (var i = 0; i < (localStorage.length)/8; i++) { 
    $("ul").append("<li><h3 class='artifact_id'>"+localStorage.getItem(i.toString()+'artid')+"</h3></li>"); 
    artid = artid.replace(/ *\b\S*?Artifact\S*\b/g, ''); 
} 
+0

在閱讀您的文章時,我無法在最後一行找到'artid'的聲明。這是完整的代碼嗎?因爲發佈的代碼除了最後一行外應該沒有錯誤。 – Mouser

+0

Mouser,這不是一個完整的代碼。 artid之前被聲明爲var artid。 artid的輸出是「artifact#」。我的目標是在句子中擺脫「神器」,但我不確定如何訪問它 –

回答

0

在你for...loop試試這個:

artid = localStorage.getItem(i.toString()+'artid').replace(/ *\b\S*?Artifact\S*\b/g, ''); 
$("ul").append("<li><h3 class='artifact_id'>"+artid +"</h3></li>"); 

這應該抓住從localStorage值,去掉了artifact,並將其存儲到一個變量,您可以打印到頁面上。

+0

謝謝Mouser,但這只是擺脫了整個事情。 –