Como faço para quebrar uma corda em mais de uma linha de código em JavaScript?

StackOverflow https://stackoverflow.com/questions/508269

  •  21-08-2019
  •  | 
  •  

Pergunta

Existe um personagem em JavaScript para quebrar uma linha de código para que ele seja lido como contínua, apesar de estar em uma nova linha?

Algo como ....

1. alert ( "Please Select file   
2. \ to delete" );
Foi útil?

Solução

No seu exemplo, você pode quebrar a corda em duas partes:

alert ( "Please Select file"
 + " to delete");

Ou, quando é uma string, como no seu caso, você pode usar um barra invertida como @Gumbo sugerido:

alert ( "Please Select file\
 to delete");

Note que esta abordagem barra invertida é não necessariamente preferido, e possivelmente não universalmente suportado ( I teve problemas para encontrar dados concretos sobre isso). É não na ECMA 5.1 especificação .

Ao trabalhar com outro código (não entre aspas), quebras de linha são ignorados, e perfeitamente aceitável. Por exemplo:

if(SuperLongConditionWhyIsThisSoLong
  && SuperLongConditionOnAnotherLine
  && SuperLongConditionOnThirdLineSheesh)
{
    // launch_missiles();
}

Outras dicas

Coloque a barra invertida no final da linha:

alert("Please Select file\
 to delete");

Editar eu tenho que notar que este é não parte de ECMAScript cordas como linha terminando caracteres não são permitidos em tudo:

A ' LineTerminator ' personagem pode não aparecer em um literal de cadeia, mesmo que precedida por uma \ barra invertida. A maneira correta de fazer com que um personagem de terminador de linha para ser parte do valor de cadeia de um literal de cadeia é usar uma seqüência de escape, como \n ou \u000A.

Então, usando concatenação é a escolha melhor.


Atualização 2015/01/05 Strings em ECMAScript5 permitir que o mencionado sintaxe:

Um personagem de terminador de linha não pode aparecer em um literal de cadeia, exceto como parte de um LineContinuation para produzir a sequência de caracteres vazia. A maneira correta de fazer com que um personagem de terminador de linha para ser parte do valor de cadeia de um literal de cadeia é usar uma seqüência de escape, como \n ou \u000A.

ECMAScript 6 introduz modelo de cordas :

cordas modelo são strings literais, permitindo expressões incorporadas. Você pode usar cordas de várias linhas e características seqüência de interpolação com -los.

Por exemplo,

alert(`Please Select file   
to delete`);

alertará

Please Select file   
to delete

Divida a corda em duas partes

alert ("Please select file " +
       "to delete");

Interessante notar. Tentou:

alert("Some \
    string \
    wrapped \
    across \
    mutliples lines.")

E isso funcionou. No entanto, em acidente !, havia um caractere de espaço após a barra invertida final (todas as outras barras invertidas estavam no fim da linha). E isso causou um erro no javascript! A remoção deste espaço fixo o erro, no entanto.

Esta é em ADT para Android usando Cordova.

Você pode simplesmente usar

1:  alert("Please select file" +
2:        " to delete");

Isso deve funcionar

Você pode quebrar uma constante cadeia longa em blocos lógicos e atribuí-los em uma matriz. Em seguida, faça uma join com uma string vazia como um delimitador.

var stringArray = [
  '1. This is first part....',
  '2. This is second part.....',
  '3. Finishing here.'
];

var bigLongString = stringArray.join('');
console.log(bigLongString);

saída será:

  1. Esta é a primeira parte .... 2. Esta é a segunda parte ..... 3. Terminando aqui.

Há uma ligeira desempenho atingido este caminho, mas você ganha na legibilidade do código e sustentabilidade.

Eu tentei uma série de sugestões acima, mas tem um aviso caráter ilegal no Chrome inspetor de código. A seguir trabalhou para mim (somente testado em Chrome embora!)

alert('stuff on line 1\\nstuff on line 2);

sai como ...

stuff on line 1
stuff on line 2

NOTA a barra invertida dupla !! ... este parece ser importante!

Não há necessidade de qualquer quebra manual no código. Basta adicionar \ n onde você quer quebrar.

alert ("Please Select file \n to delete");

Isto irá mostrar o alerta como

Please select file 
to delete.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top