SORU
24 Kasım 2009, Salı


HtmlSpecialChars Javascript eşdeğer?

Görünüşe göre, bu düşündüğümden daha zor. Hatta o kadar basit

Bir fonksiyon PHP htmlspecialchars Javascript yerleşik bir karşılığı yoktur? Oldukça kolay kendine bunu uygulamak için olduğunu biliyorum, ama varsa bir yerleşik işlevi kullanarak, sadece daha güzel.

PHP ile aşina olmayanlar için, htmlspecialchars <htmltag/> <htmltag/> gibi şeyler çevirir

escape() encodeURI() bu şekilde çalışmıyor biliyorum.


Güncelleme:Burada benim kendi uygulamasıdır

    function escapeHtml(unsafe) {
        return unsafe
            .replace("&", "&")
            .replace("<", "<")
            .replace(">", ">")
            .replace("\"", """)
            .replace("'", "'");
    }

CEVAP
29 Ocak 2011, CUMARTESİ


Sadece her özel karakter ilk geçtiği kaçış olacak çözüm kod ile ilgili bir sorun vardır. Örneğin:

escapeHtml('Kip\'s <b>evil</b> "test" code\'s here');
Actual:   Kip's <b>evil</b> "test" code's here
Expected: Kip's <b>evil</b> "test" code's here

Burada düzgün çalışan kod:

function escapeHtml(text) {
  return text
      .replace(/&/g, "&")
      .replace(/</g, "<")
      .replace(/>/g, ">")
      .replace(/"/g, """)
      .replace(/'/g, "'");
}

Güncelleme

Aşağıdaki kodu üzerinde aynı sonuçlar üretecek, ama daha iyi, özellikle metin (teşekkürler jbo5112) büyük bloklar üzerinde yapar.

function escapeHtml(text) {
  var map = {
    '&': '&',
    '<': '<',
    '>': '>',
    '"': '"',
    "'": '''
  };

  return text.replace(/[&<>"']/g, function(m) { return map[m]; });
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GALERNAYA20

    GALERNAYA20

    19 NİSAN 2011
  • Moto Journal

    Moto Journal

    28 Mayıs 2007
  • Nick Pitera

    Nick Pitera

    8 NİSAN 2006