Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

110
Vistas
Why do I need to replace \n with \n?

I have a line of data like this:

1•#00DDDD•deeppink•1•100•true•25•100•Random\nTopics•1,2,3,0•false in a text file.

Specifically, for my "problem", I am using Random\nTopics as a piece of text data, and I then search for '\n', and split the message up into two lines based on the placement of '\n'.

It is stored in blockObj.msg, and I search for it using blockObj.msg.split('\n'), but I kept getting an array of 1 (no splits). I thought I was doing something fundamentally wrong and spent over an hour troubleshooting, until on a whim, I tried

blockObj.msg = blockObj.msg.replace(/\\n/g, "\n")

and that seemed to solve the problem. Any ideas as to why this is needed? My solution works, but I am clueless as to why, and would like to understand better so I don't need to spend so long searching for an answer as bizarre as this.

I have a similar error when reading "text" from an input text field. If I type a '\n' in the box, the split will not find it, but using a replace works (the replace seems pointless, but apparently isn't...)

obj.msg = document.getElementById('textTextField').value.replace(/\\n/g, "\n")

Sorry if this is jumbled, long time user of reading for solutions, first time posting a question. Thank you for your time and patience!

P.S. If possible... is there a way to do the opposite? Replace a real "\n" with a fake "\n"? (I would like to have my dynamically generated data file to have a "\n" instead of a new line)

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

It is stored in blockObj.msg, and I search for it using blockObj.msg.split('\n'),

In a JavaScript string literal, \n is an escape sequence representing a new line, so you are splitting the data on new lines.

The data you have doesn't have new lines in it though. It has slash characters followed by n characters. They are data, not escape sequences.

Your call to replace (blockObj.msg = blockObj.msg.replace(/\\n/g, "\n")) works around this by replacing the slashes and ns with new lines.

That's an overcomplicated approach though. You can match the characters you have directly. blockObj.msg.split('\\n')

about 4 years ago · Juan Pablo Isaza Denunciar

0

in your text file

1•#00DDDD•deeppink•1•100•true•25•100•Random\nTopics•1,2,3,0•false

means that there are characters which are \ and n thats how they are stored, but to insert a new line character by replacement, you are then searching for the \ and the n character pair.

obj.msg = document.getElementById('textTextField').value.replace(/\\n/g, "\n")

when you do the replace(/\\n/g, "\n")

you are searching for \\n this is the escaped version of the string, meaing that the replace must find all strings that are \n but to search for that you need to escape it first into \\n

EDIT

/\\n/g is the regex string..... \n is the value... so /\REGEXSTUFFHERE/g the last / is followed by regex flags, so g in /g would be global search

regex resources

test regex online

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda