Comment remplacer les \n par des <br /> en JavaScript?

J'ai un textarea où j'ai insérer \n quand l'utilisateur appuie sur entrée. Code à partir de ce textarea est envoyé à un service WCF via jQuery.ajax(). Je ne peux pas enregistrer \n en DB comme il n'apparaît pas dans d'autres applications de la consommation du service.

Comment puis-je le remplacer \n avec <br /> tag?

solution

Bien beaucoup d'entre vous ont essayé et certains ont réussi avec Javascript Regex avec /g (modificateur).
À la fin, j'ai eu \n insérées deux fois, je ne sais pas pourquoi, ma conjecture est que jQuery sur l'événement keypress créé double \n qui je debug.

$('#input').keypress(function (event) {
    if (event.which == '13') {
        inputText = $('#input').val() + '\n';
        $('#input').val(inputText);
    }
});
  • habituellement, il n'est pas une bonne idée de le remplacer sur le côté client
  • n'est pas envoyé alors au serveur, il semble omis. Je peux le changer sur le serveur mais je ne reçois rien, sauf de texte.
  • Vous devriez également stocker dans le format raw est entré, si jamais vous avez ajouté une nouvelle application pour récupérer les données qui pourrait soutenir l' /n alors sûrement, vous devez le montrer? avez-vous essayé d'encoder?
  • est #input un <input type="text"/>? Parce que si c'est que vous n'obtiendrez pas tout \n. Si c'est un composant textarea, je vous suggère de convertir les données lorsque l'utilisateur clique sur le bouton pour envoyer et pas lors de la saisie. Mais mieux que ça, je voudrais juste convertir sur le côté serveur.
  • est textarea et je ne remplacer \n :br: à soumettre et à son tour :br: br balise html quand j'ai récupérer des données à partir du serveur. Pourquoi je ne suis pas le faire sur le serveur car en plus de balises br j'ai des images et de balise d'image est assez long à envoyer via le service de jQuery wrapper j'ai donc marquer les balises j'ai besoin de avec des virgules, comme les forums de le faire avec le [tag]
InformationsquelleAutor eugeneK | 2011-06-13