2011-10-10 23 views
0

我試圖找到並替換一串文本,但它似乎並不喜歡當我引用一個變量?它工作正常,如果我在硬編碼的數量在那裏,但返回在jquery中查找和替換...與搜索項數組有關的問題

丟失:

var text = "section-1 section_1 section[1]"; 
var cloneCount = 1; 
var cloneUp = 2; 
var array = { 
    "section-"+cloneCount:"section-"+cloneUp, 
    "section_"+cloneCount:"section_"+cloneUp, 
    "section\\["+cloneCount:"section\["+cloneUp 
}; 

for (var val in array) { 
    text = text.replace(new RegExp(val, "gi"), array[val]); 
    alert(text); 
} 

希望能在這裏有人能幫助:物業編號

,如果我嘗試引用變量後?

回答

1

您的array初始化不正確,應該只會導致語法錯誤。你想這樣的:

var array = { }; 
array["section-" + cloneCount] = "section-" + cloneUp; 
array["section_" + cloneCount] = "section_" + cloneUp; 
array["section\\[" + cloneCount] = "section\[" + cloneUp; 

不能使用表達式作爲對象文本的關鍵,如果你需要使用表達式來構建的關鍵,那麼你必須使用o[...] = ...語法。

演示:http://jsfiddle.net/ambiguous/cDthk/

+1

+1,但僅僅是明確的'array'不是一個數組(我知道你知道,只是讓OP知道:)) –

+0

@Andrew:那命名(和破碎的空格鍵)也讓我有點過分,但我不想進入術語之戰(對於那些來自PHP的人來說,「關聯數組」是相當普遍的)。 –

+0

非常感謝(1)向我展示和(2)非常好地解釋它...我非常感激! –