How to split a multiline string into lines without taking into account the newline in the line itself?
My approach is not working:
const str = `
Hello
World\t
its\nbeautiful
`;
JSON.stringify(str).split(/$\\n/g)
What is the result of this approach:
[""", "Hello", "World\t", "its", "beautiful", """]
What result is needed in the end:
[""", "Hello", "World\t", "its\nbeautiful"]
CodePudding user response:
Since \n
is the character that marks new lines, just like a normal new line, there is no way for javascript to differenciate between \n
and \n
.
An idea for your "special" new lines could be to escape that \n
with another \ so you would end up with
const str = `
Hello
World\t
its\\nbeautiful
`;
str.split("\n");
The result would be this:
['', 'Hello', 'World\t', 'its\\nbeautiful', '']
CodePudding user response:
unfortunately like the backslash are inside a string with backquote ` it will be interpreted as a character and \n will be interpreted as a new line
an idea can be to add another set of character at end of each line and split with this (in my sample @@)
let str = `@@
Hello@@
World\t@@
its\nbeautiful@@
`;
console.log(str.split('@@\n'));