JavaScript Tutorials

JavaScript’te HTML Varlıklarını Etkin Şekilde Çözümleme

Spread the love

HTML varlıkları, HTML’deki özel karakterler için yer tutuculardır. <, >, &, " ve ' gibi karakterlerin HTML içinde belirli anlamları vardır ve belgenin yapısını bozmamak için kaçmaları gerekir. Sunucudan veya kullanıcı girişinden HTML alırken, bunları doğru bir şekilde görüntülemek ve işlemek için bu varlıkları çözmeniz gerekir. Bu makale, JavaScript kullanarak HTML varlıklarını çözmenin iki yöntemini inceliyor.

İçerik Tablosu

Vanilla JavaScript ile HTML Varlıklarını Çözme

Vanilla JavaScript, tarayıcının yerleşik DOMParser‘ını kullanarak HTML varlıklarını çözmenin basit bir yolunu sağlar. Bu yöntem verimlidir ve harici kütüphane gerektirmez. Bununla birlikte, özellikle daha az yaygın veya özel olanları mükemmel bir şekilde işleyemeyebilir.


function decodeHTMLEntities(text) {
  const doc = new DOMParser().parseFromString(text, 'text/html');
  return doc.documentElement.textContent;
}

// Örnek kullanım:
const encodedText = '<p>Bu, içinde &amp; bulunan bir paragraftır.</p>';
const decodedText = decodeHTMLEntities(encodedText);
console.log(decodedText); // Çıktı: 

Bu, içinde & bulunan bir paragraftır.

Bu fonksiyon, giriş dizesini DOMParser kullanarak HTML olarak ayrıştırır. Daha sonra kök öğenin textContent özelliği, HTML etiketlerini kaldırarak ve varlıkları değiştirerek çözümlenmiş metni döndürür. Bu yöntemin, giriş içinde bulunan HTML etiketlerini de kaldırdığını unutmayın.

he Kütüphanesi ile HTML Varlıklarını Çözme

Özellikle daha geniş bir varlık yelpazesi için daha kapsamlı çözümleme için he kütüphanesi sağlam bir çözümdür. Hafiftir ve npm veya bir CDN aracılığıyla kolayca kullanılabilir.

Kurulum (npm):


npm install he

Kurulum (CDN – jsDelivr):


<script src="https://cdn.jsdelivr.net/npm/he"></script>

Kurulumdan sonra, he.decode() fonksiyonunu kullanın:


// 'he' kütüphanesinin dahil olduğunu varsayalım
const encodedText = '<p>Bu, içinde &amp; ve ' bulunan bir paragraftır.</p>';
const decodedText = he.decode(encodedText);
console.log(decodedText); // Çıktı: 

Bu, içinde & ve ' bulunan bir paragraftır.

he.decode(), ' (tek tırnak) gibi sayısal varlıklar da dahil olmak üzere daha geniş bir varlık yelpazesini işler.

Bir Yöntem Seçme

Her iki yöntem de HTML varlıklarını etkili bir şekilde çözer. Vanilla JavaScript yaklaşımı basit durumlar için uygundur ve harici bağımlılıklardan kaçınır. Karmaşık senaryolar veya daha geniş bir varlık yelpazesi için he kütüphanesi daha güvenilir bir çözüm sunar. Güvenlik açıklarından kaçınmak için kullanıcı girişini her zaman temizleyin.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir