Como no nó dividir a string por nova linha ('\ n')? Eu tenho uma string simples var a = "test.js\nagain.js"
e preciso obter ["test.js", "again.js"]
. eu tentei
a.split("\n");
a.split("\\n");
a.split("\r\n");
a.split("\r");
mas nenhuma das opções acima não funciona.
javascript
node.js
PaolaJ.
fonte
fonte
split()
não modifica a sequência original.Respostas:
Tente dividir em um regex que
/\r?\n/
possa ser usado pelos sistemas Windows e UNIX.fonte
split(/[\r\n]+/)
Se o arquivo for nativo do seu sistema (certamente não há garantias disso), o Node poderá ajudá-lo:
Isso geralmente é mais útil para construir seqüências de saída do Node, para portabilidade da plataforma.
fonte
Parece que o regex
/\r\n|\r|\n/
lida com as terminações de linha CR, LF e CRLF, suas seqüências mistas e mantém todas as linhas vazias entre elas. Tente isso!Você deve obter essas matrizes como resultado:
Você também pode ensinar esse regex a reconhecer outros terminadores de linha Unicode legítimos adicionando
|\xHH
ou|\uHHHH
partes, ondeH
são dígitos hexadecimais do ponto de código do caractere terminador adicional (como visto no artigo da Wikipedia comoU+HHHH
).fonte
Observe que
split
ting retorna a nova matriz, em vez de apenas atribuí-la à string original. Você precisa armazená-lo explicitamente em uma variável.fonte
Uma solução que funciona com todas as terminações de linhas possíveis, incluindo as misturadas e mantendo as linhas vazias, pode ser alcançada usando duas substituições e uma divisão, como segue
algum código para testá-lo
e a saída
fonte
O primeiro deve funcionar:
fonte
Eu criei um
eol
módulo para trabalhar com terminações de linha em nós ou navegadores. Tem um método de divisão comofonte