2010-08-07 20 views
28

मैंने एक कस्टम एक्सएमएल पार्सर लिखा और विशेष पात्रों पर इसकी लॉकिंग लिखी। तो स्वाभाविक रूप से मैंने उन्हें अपने डेटाबेस में urlencoded।PHP के urldecode के बराबर जावास्क्रिप्ट()

मुझे php के urldecode() के बराबर नहीं लग रहा है।

क्या jquery या जावास्क्रिप्ट के लिए कोई सीमाएं हैं जो इसे पूरा कर सकती हैं?

उत्तर

60

आप% xx को अक्षरों में बदलने के लिए the decodeURIComponent function का उपयोग कर सकते हैं। हालांकि, + को रिक्त स्थान में बदलने के लिए आपको उन्हें एक अतिरिक्त चरण में बदलने की आवश्यकता है।

function urldecode(url) { 
    return decodeURIComponent(url.replace(/\+/g, ' ')); 
} 
+3

उत्कृष्ट जवाब। मैंने इसे किसी भी चर लेने के लिए थोड़ा संशोधित किया: 'फ़ंक्शन urldecode (str) { अगर (टाइपो स्ट्र! = "स्ट्रिंग") { वापसी स्ट्र; } वापसी decodeURIComponent (str.replace (/ \ +/g, '')); } ' –

-1

मुझे लगता है कि आपको decodeURI फ़ंक्शन की आवश्यकता है।

+0

पूरी तरह से बंद है (केनी के जवाब देखें)। –

7

चेक बाहर इस एक

function urldecode (str) { 
    return decodeURIComponent((str + '').replace(/\+/g, '%20')); 
} 
+2

पहले से सुझाए गए उत्तरों के लिए एक अच्छा जोड़ा है, तो शायद आपको कुछ सुझाव शामिल करना चाहिए कि यह बेहतर क्यों होगा/व्यापार सूचीबद्ध अन्य विकल्पों के खिलाफ क्या है। – EdC

+0

मेरी समझ से यह '+' '20% में बदल जाएगा, जो एक अंतरिक्ष का एन्कोडेड मान है (जिसे तब डीकोडुरिकोम्पोनेंट द्वारा डीकोड किया जाता है)। तो सैद्धांतिक रूप से यह स्वीकार किए गए उत्तर के समान ही होगा, इसे करने का एक अलग तरीका। – Matt

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