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

  • André Frizzo

    André Frizz

    16 Aralık 2006
  • BachelorsPadTv

    BachelorsPad

    17 Ocak 2012
  • NextGenWindows

    NextGenWindo

    8 Kasım 2011