我需要搜索输入值中的所有街道缩写并替换为适当的后缀。这是我到目前为止所拥有的:
jQuery('#colCenterAddress').val(function(i,val) {
var f = ['Rd','St','Ave'];
var r = ['Road','Street','Avenue'];
return val.replace(f,r);
});
想法?
最佳答案
您需要迭代 f
数组,并分别尝试每个替换。
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;
});
演示: http://jsfiddle.net/vRTNt/
<小时/>如果这是您要定期执行的操作,您可能需要存储数组,甚至创建具有预制正则表达式的第三个数组。
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 查找并替换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8881436/