JavaScript - 查找并替换数组中的单词

时间:2014-03-05 09:06:06

标签: javascript jquery

如何在数组中找到一个单词(在本例中为占位符,例如_ORGAN_)并将其替换为元素的值?

sql = new Array();

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

在这种情况下,我希望将_ORGAN_替换为$('#organ_menu').val();

6 个答案:

答案 0 :(得分: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/

答案 1 :(得分:1)

您可以通过迭代数组然后在找到匹配项时将值分配给它。

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

示例fiddle以便更好地理解。

答案 2 :(得分:1)

您可以简单地遍历数组并在每个元素上使用replace

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

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

我会尝试这样的事情,使用replace

sql = new Array();

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

答案 5 :(得分:0)

你可以这样做:

首先找到项目的索引:

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

然后在该索引处插入新项目并删除第一个:

sql.splice(index,1,newitem);

<强> splice