2012-06-01 9 views
15

मैं अपना यूआरएल एन्कोड करना चाहता हूं, लेकिन मैं रिक्त स्थान को प्लस प्रतीकों में परिवर्तित करना चाहता हूं।जावास्क्रिप्ट एन्कोडुरिकॉम्पोनेंट और रिक्त स्थान को + प्रतीकों में परिवर्तित करना

यह मैं क्या करने का प्रयास किया क्या है ...

var search = "Testing this here &"; 

encodeURIComponent(search.replace(/ /gi,"+")); 

कि से उत्पादन Testing%2Bthis%2Bhere%2B%26 है लेकिन मैं इसे होना चाहते हैं क्या Testing+this+here+%26 है मैं %20 के साथ अंतरिक्ष की जगह उसे एक धन में तब्दील करने की कोशिश की प्रतीक, लेकिन यह काम नहीं लग रहा था। क्या कोई मुझे बता सकता है कि मैं क्या गलत कर रहा हूं?

उत्तर

34
encodeURIComponent(search).replace(/%20/g, "+"); 

तुम गलत यहाँ क्या कर रहे हैं कि पहले आप प्लस करने के लिए रिक्त स्थान परिवर्तित, लेकिन फिर encodeURIComponent"%2B" को प्लस बदल देता है।

+0

यदि स्ट्रिंग में कोई "वास्तविक" '+ वर्ण होता है तो इससे समस्याएं पैदा होंगी। – user2428118

+4

@ user1419007 नहीं, यह नहीं होगा। सभी "मूल" प्लस को '% 2B' 'में परिवर्तित कर दिया गया है और' प्रतिस्थापन 'द्वारा रखा गया है। – MaxArt

+0

आह, मूर्ख मुझे, धन्यवाद। 8 मिनट ऊपर होने पर मैं आपको सबसे अच्छे जवाब के लिए चुनूंगा। – Ian

-2

You're using the wrong functionencodeURIComponent के बजाय escape का उपयोग करें।

var search = "Testing this here &"; 
console.log(escape(search.replace(/ /gi,"+")));​ 
+0

दरअसल, हम नहीं जानते कि वह क्यों चाहता है कि स्ट्रिंग परिवर्तित हो। तो यह जानने का कोई तरीका नहीं है कि उसके लिए सबसे अच्छा क्या है। आईबीएम iSeries सर्वर के लिए, उदाहरण के लिए, 'escape' अच्छी तरह से काम नहीं करता है। – MaxArt

+0

असल में यह यूआरएल के सौंदर्यशास्त्र के लिए काफी सुंदर है, मैं खोज क्वेरी – Ian

+0

'बचाना() 'प्रदर्शित करने के लिए हैशटैग का उपयोग कर रहा हूं [बहिष्कृत] (https://developer.mozilla.org/en-US/docs/Web/जावास्क्रिप्ट/संदर्भ/Global_Objects/escape): 'यह सुविधा वेब मानकों से हटा दी गई है। हालांकि कुछ ब्राउज़र अभी भी इसका समर्थन कर सकते हैं, लेकिन इसे छोड़ने की प्रक्रिया में है। पुरानी या नई परियोजनाओं में इसका इस्तेमाल न करें। इसका उपयोग करने वाले पेज या वेब ऐप्स किसी भी समय टूट सकते हैं –

संबंधित मुद्दे