2009-05-14 85 views

Respuesta

227

problema viene del hecho de que los saltos de línea (\n\r?) No son los mismos como HTML <br/> etiquetas

var text = document.forms[0].txt.value; 
text = text.replace(/\r?\n/g, '<br />'); 
+6

Esto también funciona para mí. En jQuery puedes hacer algo como esto: $ ('# caption'). Html ($ ('# caption'). Text(). Replace (/ \ n \ r?/G, '
')); – DavGarcia

+1

El salto de línea Regexp debe ser '/ (\ r \ n | \ n | \ r)/gm' http://www.textfixer.com/tutorials/javascript-line-breaks.php – tothemario

+0

Si está utilizando jQuery Sugiero usar '.val' - http://stackoverflow.com/questions/5583040/show-newlines-in-html-textarea/5583094#5583094 –

8

Es necesario utilizar \n para linebreaks dentro textarea

+0

Esto funciona para mí, en Chrome v 61 al menos. – Snorvarg

+0

Gracias ... también funciona para mí –

3

Una nueva línea es sólo un espacio en blanco para el navegador y no serán tratados diferente a un espacio normal (" "). Para obtener una nueva línea, debe insertar elementos <BR />.

Otro intento de resolver el problema: Escriba el texto en el área de texto y luego agregue JavaScript detrás de un botón para convertir los caracteres invisibles a algo legible y volcar el resultado en DIV. Eso le dirá lo que quiere su navegador.

20

si se utiliza la escritura en general java y hay que asignar cadena de texto valor del área a continuación

document.getElementById("textareaid").value='texthere\\\ntexttext'. 

es necesario sustituir o \n<br> a \\\n

de lo contrario, da Uncaught SyntaxError: Unexpected token ILLEGAL en todos los navegadores.

+0

no funciona en Firefox 38.0 – Randall

0

Si sólo tiene que enviar el valor de la testarea al servidor con saltos de línea Uso nl2br

11

Tal vez alguien encuentra este útil:

que tenía un problema con los saltos de línea, que fueron transmitidos de la variable de servidor a javascript variable, y luego javascript los escribía en textarea (usando enlaces de valor knockout.js).

la solución se escapaba doble nuevas líneas:

orginal.Replace("\r\n", "\\r\\n") 

en el lado del servidor, ya que con sólo caracteres individuales de escape JavaScript no fue el análisis.

+0

usando "\\ n" funciona para mí en Windows y supongo que funcionará bien en sistemas Linux. –

0

esto es lo que hice por el mismo problema que tuve.

cuando estoy pasando el texto a la siguiente página de JSP, lo estoy leyendo como un área de texto en lugar de leer algo así como

por lo que la salida de vino, lo que quisieras. y para otras propiedades, puede usarlas a continuación.

<textarea style="background-color: white; border: none; width:660px;font-family: Arial, Helvetica, sans-serif; font-size:1.0em; resize:none;" name="text" cols="75" rows="15" readonly="readonly" ><s:property value="%{text}"/></textarea> 
2

que tienen un área de texto con id es #infoartist seguimiento:

<textarea id="infoartist" ng-show="dForm" style="width: 100%;" placeholder="Tell your contacts and collectors about yourself."></textarea> 

En el código Javascript, voy a conseguir valor del área de texto y vuelva a colocar nueva línea de escape (n \ \ r) por <br /> etiqueta, tales como:

var text = document.getElementById("infoartist").value; 
text = text.replace(/\r?\n/g, '<br />'); 

Así que si usted está usando jQuery (como yo):

var text = $("#infoartist").val(); 
text = text.replace(/\r?\n/g, '<br />'); 

Espero que te haya ayudado. :-)

Cuestiones relacionadas