2012-01-16 17 views
6

के साथ ढूंढें और प्रतिस्थापित करें मुझे सभी सड़क संक्षेपों के लिए इनपुट का मूल्य खोजना होगा और उपयुक्त प्रत्यय के साथ प्रतिस्थापित करना होगा। यह मेरे पास अब तक है:jQuery एरे

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

विचार?

+2

यह PHP में काम करता है, लेकिन दुर्भाग्य से जावास्क्रिप्ट में नहीं। –

+0

यह प्रतिस्थापित करने का एक वैध जावास्क्रिप्ट आमंत्रण नहीं है। यह विशेष रूप से अंतरराष्ट्रीय नहीं है। यह क्लाइंट साइड काम है, जिसे आसानी से घुमाया जाता है। आपको यह सुनिश्चित करने की ज़रूरत है कि प्रत्येक मैच व्हाइटस्पेस से पहले हो और एक गैर शब्द चरित्र द्वारा सफल हो। –

उत्तर

11

आपको 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; 
}); 

डेमो:http://jsfiddle.net/vRTNt/1/

0
var valArray = val.split(" "); 

for(x = 0; x < valArray.length; x++){ 
    for(y = 0; y < r.length; y ++){ 
     if (valArray[x] == f[y]){ 
      valArray[x] = r[y]; 
     } 
    } 
} 
return valArray 

तुम हमेशा सरणी वापस एक स्ट्रिंग में वापसी के लिए बारी अगर आप की तरह कर सकते हैं।

डेमो: यह करने के लिएhttp://jsfiddle.net/vRTNt/12/

0

एक तरह से, val स्ट्रिंग लूप करने के लिए है, और यदि आप f सरणी में एक शब्द देखते हैं, r सरणी में अपने समकक्ष से बदल दें।

jQuery('#colCenterAddress').val(function(i,val) { 
    var f = ['Rd','St','Ave']; 
    var r = ['Road','Street','Avenue']; 
    var valArray = val.split(' '); 
    $.each(valArray, function(i,v){ 
     var inF = $.inArray(v, f); 
     if(inF !== -1){ 
     valArray[i] = v.replace(f[inF], r[inF]); 
     } 
    }); 
    return valArray.join(' '); 
});