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

  • Julia Graf

    Julia Graf

    6 Mayıs 2006
  • Megan Parken

    Megan Parken

    19 Temmuz 2009
  • Santozz Yazz

    Santozz Yazz

    23 Mart 2014