2011-07-27 14 views
5

Bir html'den etiketleri ayırmak istiyorum ancak satır sonlarını korur. Javascript ile şerit etiketleri ve satır sonlarını işlemek

Metni tarayıcıya kopyalamak ve not defterine yapıştırmak gibi davranışı istiyorum.

Örneğin, bir kod dönüştürür:

  • <div>x1</div><div>x2</div>x1\nx2
için x1x2
  • x1<br>x2 için x1\nx2
  • <b>x1</b><i>x2</i>-
  • <p>x1</p><p>x2</p>x1\nx2 içinTüm etiketleri kaldırmak çalışmıyor (/ <. *?>/G). Ayrıca < div> oluşturma ve innertHTML ayarlar ve textContent satır sonlarını kaldıracağını okur.

    Herhangi Bir Yardım?

  • cevap

    2

    Dene:

    function strip_tags(str){ 
        return str 
          .replace(/(<(br[^>]*)>)/ig, '\n') 
          .replace(/(<([^>]+)>)/ig,''); 
    } 
    
    var str = '<div>x1</div><div>x2</div><br>'+'<p>x1</p><p>x2</p>'+'<b>x1</b><i>x2</i>'; 
    

    Bu etiketleri şerit ve yeni hatlarla <br /> veya <br> yerine, ancak blok öğeleri için yeni hatlar ekleyerek çözüm ile gelip oldukça uzun bir zaman gerektirir olacaktır. satır sonu neden olur

    Here is a demo

    3

    Bu sizin için nasıl çalışıyor? Bu, <br>, </div> ve </p>'un her oluşumunu bir \n ile değiştirecek ve ardından kalan etiketleri şeritleyecektir. Goofy, ama en azından bir başlangıç.

    fixed = text_to_fix.replace(/<(?:br|\/div|\/p)>/g, "\n") 
          .replace(/<.*?>/g, ""); 
    

    Bu, tüm HTML için geçerli değildir. Sadece bahsettiğin etiketler.

    +0

    div, p ve br birçok etiketleri sadece örnek (hr, li, tr, ...) –