2010-09-15 10 views
7

Der folgende Code ist ein Beispiel für Text, der aus einer Datenbank in ein Textfeld eingefügt wird.Trimmen führende/nachfolgende Leerzeichen aus Textarea mit jQuery?

<textarea id="inputPane" cols="80" rows="40" class="pane"> 
<p> 
    some text here... 
</p> 
    <p> 
    more text here... 
</p> 
</textarea> 

mit jQuery .trim was ist der eigentliche Code jquery alle führenden und nachfolgenden Leerzeichen zu entfernen und das Textfeld Display sehr ähnlich unten haben?

<textarea id="inputPane" cols="80" rows="40" class="pane"> 
    <p>some text here...</p> 
    <p>more text here...</p> 
</textarea> 

Ich habe stundenlang ohne Erfolg unterschiedliche Kombinationen mit .trim

$('#inputPane')jQuery.trim(string); 
+1

Beachten Sie, dass die oben ungültige HTML ist. Sie müssen '<' und '&' Zeichen innerhalb ''. Browser lassen Sie mit dem Fehler durch, aber nur, bis Ihr Text die Zeichenfolge ' bobince

+0

Wenn Sie Kontrolle über den Server haben, und Sie es in einem Formular einreichen, können Sie auch einfach tun Parsen auf dem Server. Es wäre wahrscheinlich schneller so. In PHP können Sie die Klasse 'DOMDocument' verwenden. –

Antwort

7

Sie so etwas wie dies versuchen könnte:

jQuery(function(​$) { 
    var pane = $('#inputPane'); 
    pane.val($.trim(pane.val()).replace(/\s*[\r\n]+\s*/g, '\n') 
           .replace(/(<[^\/][^>]*>)\s*/g, '$1') 
           .replace(/\s*(<\/[^>]+>)/g, '$1')); 
});​ 

die das Ergebnis gibt:

<p>some text here...</p> 
<p>more text here...</p> 

Obwohl Dies ist möglicherweise nicht kugelsicher, es sollte sich als viel schneller/effizienter erweisen als das Erstellen von Elementen aus dem HTML-Wert des Textfelds.

+0

oh mein Gott ... das funktioniert genau so, wie wir es brauchen! Oh Danke, Danke Kevin. Lebensretter ... ich atme wieder. ;) Ihr Jungs auf Stackoverflow sind einfach unglaublich. Ich wünschte ich könnte mich wie ihr entwickeln. Ich bin nur ein wenig Veteran 10+ Jahr Front-End-Entwickler und Designer, der in letzter Zeit in jQuery gestolpert ist. Nochmals vielen Dank! – caroline

+0

Gern geschehen. Beachten Sie, dass dies möglicherweise nicht so funktioniert, wie Sie es mit verschachtelten Elementen wünschen. Wie einfach wird Ihr HTML in diesem '