È necessario iterare l'array f
e provare a sostituirlo separatamente.
jQuery('#colCenterAddress').val(function(i,val) {
var f = ['Rd','St','Ave'];
var r = ['Road','Street','Avenue'];
$.each(f,function(i,v) {
val = val.replace(new RegExp('\\b' + v + '\\b', 'g'),r[i]);
});
return val;
});
DEMO:http://jsfiddle.net/vRTNt/
Se questo è qualcosa che si sta andando a fare su base regolare, si consiglia di conservare i Array, e anche fare una terza Array che ha le espressioni regolari preimpostate.
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;
});
DEMO:http://jsfiddle.net/vRTNt/1/
fonte
2012-01-16 14:38:43
Che funziona in PHP, ma sfortunatamente non in JavaScript. –
Questa non è una chiamata javascript valida di sostituzione. Non è particolarmente internazionalizzabile. È il lavoro sul lato client, che è facilmente aggirabile. È necessario assicurarsi che ogni partita sia preceduta da spazi bianchi e che sia seguita da un carattere non di parole. –