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

  • Jason Parker

    Jason Parker

    14 Aralık 2009
  • Lamborghini

    Lamborghini

    13 Aralık 2005
  • SerienTrailerMP

    SerienTraile

    7 HAZİRAN 2012