Remplacer les <br /> dans un textarea avec un séparateur de ligne ( Javascript )
Je suppose que ce sera répondu dans les deux minutes, mais je ne suis pas capable de google une solution.
J'ai un textarea qui, la première, reçoit des données depuis le serveur (de manière dynamique à l'aide d'AJAX). Le texte dans le textarea peut ressembler à ceci:
Hello Cruel <br />World!
Mes utilisateurs n'aiment pas le look de cette 🙂
J'ai donc écrit une fonction très simple:
function replaceHtml( string_to_replace )
{
var result = replaceAll( string_to_replace, " ", " ");
result = result.replace(/<br\s*\/?>/mg,"\n\r"); //or "\n", "\r", "\r\n"
return result;
}
Ma sortie ressemble à ceci:
Hello Cruel World!
Au lieu de:
Hello Cruel
World!
J'aimerais une solution qui est à plus de 5 lignes de long et peut être appliquée avec tous les navigateurs et Systèmes d'exploitation
Btw, Im pas un fan de regexes, alors peut-être que le vrai problème sera là..
Mise à JOUR
À partir de cette réponse et m. Michael_B j'ai eu cette solution, qui est de travailler pour moi, mais j'ai un pressentiment que le personnage pourrait ne pas être la meilleure solution:
function replaceHtml( string_to_replace )
{
return string_to_replace.replace(/ /g, ' ').replace(/<br.*?>/g, '\u2028');
}
Semble fonctionner: jsfiddle.net/Xfffg
Apostrophes et les guillemets sont équivalent en Javascript
replaceAll n'est pas une fonction
Pilules: ne peux pas le croire, mais sa ne marche pas pour moi..
function replaceHtml( string_to_replace ) { var result = string_to_replace.replace(/ /g, ' ').replace(/<br.*?>/g, '\n'); return result; }
OriginalL'auteur Igor L. | 2013-03-05
Vous devez vous connecter pour publier un commentaire.
@Explosion Pilules commentaire et jsFiddle
DÉMO
Mise à JOUR basé sur Nouvelle ligne dans la zone de texte
Mise à jour de la DÉMO
Peut-être que cela permettra de résoudre votre problème avec
\n
- Nécessite jQuery.J'utilise Mozilla 19.0, et il fonctionne très bien pour moi. Vous cherchez à elle sur jsFiddle ou dans votre propre solution?
Sur jsFiddle il fonctionne, pas sur ma solution.. j'ai juste essayé de remplacer le '\n': '\u2028 " de cette réponse et cela fonctionne sur ma solution, mais j'ai une intuition qui n'est pas la meilleure façon de le faire.. Encore, je vais vous donner un +1 pour un joli code, mais jusqu'à ce que je comprendre ce qui se passe dans le textarea, Je ne sais pas si c'est ok pour marquer cette question qu'a répondu.
Pourriez-vous préciser un peu plus de votre code...êtes-vous en tapant cette info dans la zone de texte? Quel est l'appel de
replaceHtml
? Pouvez-vous reproduire le problème que vous rencontrez avec\n
dans jsfiddle?Si je change ma solution pour
\u2028
il ne fonctionne pas sur Chrome ou Firefox sur ma machine.OriginalL'auteur Kaizen Programmer
Corrigez-moi si je me trompe, mais ne devrait-elle pas être
$.replaceAll()
que c'est une fonction jQuery pas JS?Ou
replace()
en Javascript?Je vois. Puis-je vous demander pourquoi? 🙂
Honnêtement: ne savent pas, il y a un $.replaceAll() 🙂
OriginalL'auteur Matt Fletcher
Vous n'avez pas besoin d'utiliser jQuery dans:
OriginalL'auteur John Henry Briggs