2014-01-08 13 views
1

更換和jQuery的尋找和發現這個代碼查找鍵值陣列

var f = ['Rd','St','Ave']; 
var r = ['Road','Street','Avenue']; 

var re = $.map(f, function(v,i) { 
return new RegExp('\\b' + v + '\\b', 'g'); 
}); 

jQuery('#colCenterAddress').val(function(i,val) { 
$.each(f,function(i,v) { 
    val = val.replace(re[i],r[i]); 
}); 
return val; 
}); 

jQuery find and replace with arrays 由於更換到 https://stackoverflow.com/users/1106925/squint

其真正偉大的,但我想重構使用鍵值陣列

var fr ={ 
"Rd" : "road", 
"St" : "Street", 
"Ave" : "Avenue", 
}; 

firly新的jQuery的任何幫助將是巨大

回答

2

嘗試

var re = $.map(fr, function (v, k) { 
    return { 
     regex: new RegExp('\\b' + k + '\\b', 'g'), 
     value: v 
    }; 
}); 
jQuery('#colCenterAddress').val(function (i, val) { 
    $.each(re, function (i, obj) { 
     val = val.replace(obj.regex, obj.value); 
    }); 
    return val; 
}); 

演示:Fiddle

+0

完善謝謝,我會接受時,它會讓我 –