2010-08-07 21 views
28

Özel bir xml ayrıştırıcısı yazdım ve özel karakterleri kilitledim. Doğal olarak onları veritabanımın içine kodladım.Javascript php's urldecode'a eşdeğerdir()

Ben php's urldecode() için bir eşdeğer bulabilirsiniz.

jquery ya da javascript için bunu gerçekleştirebilecek herhangi bir sınırlama var mı?

cevap

60

% xx karakterlerini dönüştürmek için the decodeURIComponent function kullanabilirsiniz. Ancak, +'u boşluklara dönüştürmek için bunları fazladan bir adımda değiştirmeniz gerekir.

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

Mükemmel cevap. Herhangi bir değişkeni almak için biraz değiştirdim: 'işlevi urldecode (str) { ise (typeof str! =" String ") { return str; } return decodeURIComponent (str.replace (/ \ +/g, '')); } ' –

-1

decodeURI işlevine ihtiyacınız olduğunu düşünüyorum.

+0

Tamamen değil (Kenny'nin cevabını bakın). –

7

Kontrol dışarı bu bir

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

Zaten önerilen yanıtlara hoş bir ek olarak, muhtemelen neden daha iyi olacağını/burada listelenen diğer seçeneklere karşı ticaretin ne olduğuna dair bazı önerilerde bulunmalısınız. – EdC

+0

Anlayışımdan bu, + + 'yı bir alanın kodlanmış değeri olan (% decodeURIComponent tarafından çözülür) '%' 'durumuna çevirecektir. Teorik olarak bu, kabul edilen cevapla aynı şeyi yapar, sadece bunu yapmanın farklı bir yolu. – Matt

İlgili konular