2010-09-15 20 views
7

Le code suivant est un exemple de texte placé dans une zone de texte à partir d'une base de données.Supprimer les espaces avant/arrière de la zone de texte à l'aide de jQuery?

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

en utilisant jQuery de .trim quel est le code jquery réelle pour supprimer tous les espaces avant et et ont l'affichage textarea très similaire au-dessous?

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

J'ai travaillé pendant des heures sans succès en essayant différentes combinaisons avec .trim

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

Notez que ce qui précède est HTML invalide. Vous devez échapper les caractères '<' et '&' dans ''. Les navigateurs vous permettent de sortir avec l'erreur, mais seulement jusqu'à ce que votre texte contienne la chaîne ' bobince

+0

Si vous avez le contrôle sur le serveur, et que vous le soumettez dans un formulaire, vous pouvez également faire le analyse sur le serveur. Ce serait probablement plus rapide de cette façon. En PHP, vous pouvez utiliser la classe 'DOMDocument'. –

Répondre

7

Vous pouvez essayer quelque chose comme ceci:

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

Ce qui donne le résultat:

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

Bien que ceci peut ne pas être à l'épreuve des balles, il devrait s'avérer beaucoup plus rapide/plus efficace que de créer des éléments à partir de la valeur HTML de la zone de texte.

+0

oh mon dieu ... cela fonctionne exactement comme nous en avons besoin! Merci, merci Kevin. Life Saver ... Je respire à nouveau. ;) Les gars sur stackoverflow sont tout simplement géniaux. J'aimerais pouvoir développer comme vous les gars. Je suis juste un concepteur et concepteur débutant vétéran de 10 ans et plus qui est tombé récemment sur jQuery. Merci encore! – caroline

+0

De rien. Gardez à l'esprit que cela peut ne pas fonctionner exactement comme vous le souhaitez avec des éléments imbriqués et autres. À quel point votre HTML sera-t-il simple dans ce '