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

  • Charles Griffin Gibson

    Charles Grif

    26 NİSAN 2006
  • Cristina Landa

    Cristina Lan

    28 Ocak 2010
  • RogerBuckChrist

    RogerBuckChr

    9 Temmuz 2011