jQuery查找并替换为数组

cha*_*ton 7 arrays jquery

我需要搜索所有街道缩写的输入值,并用适当的后缀替换.这是我到目前为止:

jQuery('#colCenterAddress').val(function(i,val) {
    var f = ['Rd','St','Ave'];
    var r = ['Road','Street','Avenue'];
    return val.replace(f,r);
});
Run Code Online (Sandbox Code Playgroud)

思考?

小智 14

您需要迭代fArray,并分别尝试每个替换.

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;
});
Run Code Online (Sandbox Code Playgroud)

演示: 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;
});
Run Code Online (Sandbox Code Playgroud)

演示: http ://jsfiddle.net/vRTNt/1/