2010-09-15 17 views
7

Poniższy kod jest przykładem tekstu umieszczonego w polu tekstowym z bazy danych.Przycinanie wiodących/końcowych białych znaków z textarea za pomocą jQuery?

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

użyciu jQuery na .trim jaki jest rzeczywisty kod jquery, aby usunąć wszystkie początkowe i końcowe spacje i posiadają wyświetlacz textarea bardzo podobny do poniżej?

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

Pracowałem na to przez wiele godzin bez powodzenia próbując różne kombinacje z .trim

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

Należy zauważyć, że powyższe jest nieprawidłowy HTML. Musisz unikać znaków '<' i '&' wewnątrz ''. Przeglądarki pozwalają uniknąć błędu, ale tylko do momentu, gdy tekst zawiera ciąg ' bobince

+0

Jeśli masz kontrolę nad serwerem i przesyłasz go w formularzu, możesz po prostu zrobić parsowanie na serwerze. Prawdopodobnie byłby szybszy w ten sposób. W PHP można użyć klasy 'DOMDocument'. –

Odpowiedz

7

Można spróbować czegoś takiego:

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')); 
});​ 

co daje wynik:

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

Chociaż może to nie być kuloodporne, powinno być o wiele szybsze/wydajniejsze niż tworzenie elementów z wartości HTML textarea.

+0

o mój Boże ... to działa dokładnie tak, jak tego potrzebujemy! oh Dziękuję, dziękuję Kevin. Oszczędzanie życia ... znowu oddycham. ;) Faceci na stackoverflow są po prostu niesamowici. chciałbym móc się rozwijać jak wy. Jestem tylko skromnym weteranem ponad 10-letnim deweloperem i projektantem, który ostatnio wpadł na jQuery. Jeszcze raz dziękuję! – caroline

+0

Nie ma za co. Pamiętaj, że może nie działać dokładnie tak, jak chcesz za pomocą elementów zagnieżdżonych i tym podobnych. Jak prosty będzie Twój HTML w tym '