2014-03-05 67 views
0

如何在數組中找到一個單詞(在本例中爲佔位符,例如_ORGAN_)並將其替換爲元素的值?JavaScript - 查找並替換數組中的單詞

sql = new Array(); 

$('#system').change(function(){ 
    filter = " topography_index = _ORGAN_";  
    sql.push(filter); 
}); 

在這種情況下,我想用$('#organ_menu').val();

+0

你想在哪個值'數組元素來取代_ORGAN_'? – tnanoba

回答

3

試試這個:

// sql array 
var sql = ['organ not found', '_ORGAN_ is here']; 
var val_to_replace = '_ORGAN_'; 
var replace_with = 'heart'; // temp value - change it with $('#organ_menu').val() 

$.each(sql, function (key, val) { 
    // search for value and replace it 
    sql[key] = val.replace(val_to_replace, replace_with); 
}) 

console.log(sql) 

的jsfiddle:http://jsfiddle.net/d8sZT/

+0

非常感謝! – IlludiumPu36

+0

工作片段 –

0

我會嘗試這樣的事情來替代_ORGAN_,使用replace

sql = new Array(); 

$('#system').change(function(){ 
    filter = " topography_index = _ORGAN_".replace("_ORGAN_", $('#organ_menu').val(), "gi"); 
    sql.push(filter); 
}); 
1

你可以簡單地做是通過遍歷數組,然後一旦找到匹配值,就將值賦給它。

for (i = 0; i < sql.length; i++) { 
    if (sql[i] === "_ORGAN_") { 
     sql[i] = $('#organ_menu').val(); 
    } 
} 

例子fiddle爲了更好的理解。

0

你可以這樣做:

首先找到該項目的索引:

var index=sql.indexOf("_ORGAN_"); 

然後該索引處插入新的項目,並刪除第一個:

sql.splice(index,1,newitem); 

splice

1

你可以簡單地迭代這個數組並使用替換每個元素

var organValue = $('#organ_menu').val(); 

for (var i = 0; i < sql.length; i++) { 
    sql[i] = sql[i].replace("_ORGAN_", organValue); 
} 
+0

這工作正常,但只取代_ORGAN_的第一個實例 – IlludiumPu36

1
var regExp = new RegExp(organ, 'g');  
$.each(sql, function(index, value) { 
    sql[index] = value.replace(regExp, 'test'); 
}) 
+0

這個工程很好,當更換多個實例時,所以你的解決方案給了我一些靈活性......我可能會使用這個......非常感謝! – IlludiumPu36

相關問題