Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

174
Views
Javascript: lea el mensaje de alerta del archivo y muestre con salto de línea

¿Cómo puedo en Javascript leer cadenas de un archivo de texto y mostrarlas en un cuadro de alerta con líneas nuevas?

Supongamos que tengo un archivo de texto ASCII "messages.txt" que contiene dos líneas:

 AAA\nBBB\nCCC DDD\nEEE\nFFF

En javascript, leo el contenido del archivo y lo almaceno en una variable "m":

 var m; var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if ((xmlhttp.readyState==4) && (xmlhttp.status==200 || xmlhttp.status==0)) { m = xmlhttp.responseText.split('\n'); }; }; xmlhttp.open("GET", "messages.txt", false); xmlhttp.send(null);

Ahora, cuando muestro el primer mensaje con

 console.log(m[0]); alert(m[0]);

se muestra exactamente como en el archivo de texto y sin saltos de línea; es decir

 AAA\nBBB\nCCC

y no como

 AAA BBB CCC

Cambiar \n a \\n , \r\n , \\r\\n o %0D%0A en el archivo de texto no ayuda; la alerta aún se muestra como una línea que incluye los caracteres de escape sin reemplazarlos por una nueva línea. Cambiar la codificación de "messages.txt" de ASCII a UTF-8 tampoco ayudó.

Para aclarar el problema: cuando se lee m del archivo "message.txt", se divide en una matriz de cadenas. m[0] igual a "AAA\nBBB\nCCC".

 console.log(m[0]); // displays AAA\nBBB\nCCC console.log('AAA\nBBB\nCCC'); // displays AAA // BBB // CCC console.log(typeof(m[0]) // displays string console.log(m[0]=="AAA\nBBB\nCCC"); // displays false

¿Por qué m[0] no es igual a "AAA\nBBB\nCCC" (incluso si esto es exactamente lo que se muestra en la consola)? Supongo que esa es la razón por la que no aparecen saltos de línea.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Las comillas simples no interpretan los saltos de nueva línea ( \n ). Por lo tanto, debe cambiar las comillas en su método split() para tener comillas dobles.

Usa la función split() así.

 const str = "Hi! I'm text!\nIsn't this supposed to be newline?"; console.log(str.split("\n"));

Esto debería devolver una matriz como esa cuando se ejecuta.

 [ "Hi! I'm text!", "Isn't this supposed to be newline?" ]

Así es como se separa el texto con saltos de línea.


Para obtener más información, consulte esta otra pregunta sobre el desbordamiento de pila .

about 4 years ago · Juan Pablo Isaza Report

0

necesita agregar otro \ en split('\n') para split('\\n')

o cambie la comilla simple a comillas dobles split("\n")

también lo animo a leer este artículo rápido sobre comillas 'simples' vs 'dobles'

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!