Erro de JavaScript: "Unterminated String Literal"

Escrito por steve mcdonnell Google | Traduzido por cezar rosa
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Erro de JavaScript: "Unterminated String Literal"
Erro de string não terminada (Jupiterimages/Photos.com/Getty Images)

Quando você define uma string em JavaScript, é preciso colocar os caracteres dela entre aspas. Se começar a string com aspas simples, será necessário terminá-la com aspas simples e "escapar" quaisquer outras aspas simples que podem ser incluídas no texto da string, como um apóstrofo, ou o interpretador JavaScript ficará confuso. Ao receber um erro "Unterminated String Literal" (string literal não terminada), significa que você começou uma sequência de caracteres mas nunca designou um final para a sequência, deixando a string não terminada. Como o JavaScript não sabe onde a string termina e onde o código JavaScript continua, ele para e gera um erro.

Outras pessoas estão lendo

Inclusão de quebras de linha

No JavaScript, você não pode colocar quebras de linha em uma string ao inclui-las na definição da string. Uma declaração de string multi-linha em JavaScript causará o erro "Unterminated String Literal". Por exemplo:

// Isso produz um erro "Unterminated String Literal" var string = "Imprima isso e, em seguida, isso aqui em uma outra linha";

Insera novas linhas em uma string JavaScript usando o caractere especial "\n". Por exemplo:

var string = "Imprima isso\n e, em seguida, em outra linha";

Utilizando variáveis PHP com quebras de linha

JavaScript e PHP são muitas vezes utilizados em conjunto, já que o JavaScript é uma linguagem que fica do lado do cliente e o PHP, uma linguagem que fica do lado do servidor. No entanto, ao injetar uma variável PHP que contém quebras de linha no código JavaScript, você vai receber um erro "Unterminated String Literal". Se as quebras de linha são dinamicamente inseridas em tempo de execução, isso pode ser difícil de depurar. Por exemplo:

<?php $texto = <<<FIM Texto PHP em várias linhas está OK com a sintaxe heredoc FIM; ?> <script> var minhaVariavel = "<?php echo $texto; ?>"; </script>

Aninhamento inválido de aspas simples e duplas

No JavaScript e na maioria das outras linguagens de programação, as aspas simples e duplas podem ser aninhadas uma dentro da outra para criar strings que contêm aspas. Se você não aninhar corretamente as aspas simples e duplas no JavaScript, o resultado é geralmente um erro de "Unterminated String Literal". Por exemplo:

// Isso produz um erro "Unterminated String Literal" por causa do apóstrofo var string = 'E ela disse: "I don't think so"';

Inserindo aspas no PHP

Similar ao injetar variáveis ​​PHP com caracteres de nova linha, se você inserir variáveis ​​PHP com aspas não "escapadas", também pode ser gerado um erro de "Unterminated String Literal". O exemplo a seguir pode ser muito difícil de depurar, porque o erro ocorre em tempo de execução e pode apenas aparecer ocasionalmente. Por exemplo, quando "Jack O'Brien" é inserido no código JavaScript abaixo pelo PHP, isso causa um erro de "Unterminated String Literal", porque o último nome contém um apóstrofo que não foi "escapado".

<script> var nome = '<php echo $nome; ?>'; </ script>

Para evitar o erro, use a função "addslashes" em PHP para "escapar" aspas simples, aspas duplas, uma barra invertida e um byte nulo. Por exemplo:

<script> var nome = '<?php echo addslashes($nome); ?>'; </ script>

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível