JavaScript "letterali stringa non terminata" Errori

July 7

Quando si definisce una stringa in JavaScript, è racchiudere i caratteri della stringa tra virgolette. Se si avvia la stringa con una sola offerta, è necessario terminare la stringa con un solo preventivo e fuga qualsiasi altro carattere apice singolo che potrebbero essere contenute nel testo della stringa, come ad esempio un apostrofo, o l'interprete JavaScript si confonde. Quando si riceve un errore "non terminata stringa" in JavaScript, vuol dire che hai iniziato una stringa specificando caratteri da inserire nei quella stringa, una stringa letterale, ma non hai mai designato la fine della stringa, lasciando la stringa non terminata. Poiché JavaScript non sa dove la stringa si ferma e in cui il codice JavaScript continua, si ferma e si dà un errore.

Compreso interruzioni di riga

In JavaScript, non è possibile includere interruzioni di riga in una stringa includendo interruzioni di riga effettivo nella definizione stringa. Una dichiarazione stringa di più righe in JavaScript causerà un errore "non terminata stringa letterale". Per esempio:

// Questo produce un errore "non terminata stringa letterale"
stringa var = "Stampa questa
e poi questo su un'altra linea ";

Inserire nuove linee in una stringa JavaScript utilizzando il carattere di nuova riga "\ n". Per esempio:

stringa var = "Stampa questa \ n poi questo su un'altra linea";

Utilizzo delle variabili PHP con interruzioni di riga

JavaScript e PHP sono spesso usati insieme, come JavaScript è un linguaggio di scripting lato client e PHP è un linguaggio lato server. Tuttavia, se si inietta una variabile PHP che contiene le interruzioni di riga nel codice JavaScript, si riceverà un errore "non terminata stringa letterale". Dal momento che le interruzioni di riga vengono inserite in modo dinamico in fase di esecuzione, questo può essere difficile da eseguire il debug. Per esempio:

<? Php $ text = <<< FINE
testo PHP su più righe
è OK con la sintassi heredoc
FINE;
?>
<Script>
var myVariable = "<? php echo $ testo;?>";
</ Script>

Impropriamente Nesting apici singoli e doppi

Nella maggior parte dei JavaScript e altri linguaggi di programmazione, le virgolette singole e doppie possono essere annidati uno dentro l'altro per creare stringhe contenenti virgolette. Se non lo fai correttamente nido singole e doppie virgolette in JavaScript, il risultato è di solito un errore "non terminata stringa letterale". Per esempio:

// Questo produce un errore "non terminata stringa letterale" a causa del l'apostrofo
var stringa = 'E lei ha detto: "Io non la penso così"';

Iniettano Citazioni da PHP

Simile a iniettare variabili PHP con caratteri di nuova riga, se si inietta variabili PHP con le virgolette escape, è anche possibile causare un errore "non terminata stringa letterale". L'esempio che segue può essere uno dei più difficili da eseguire il debug perché l'errore si verifica in fase di esecuzione e potrebbe verificarsi solo occasionalmente. Ad esempio, quando "Jack O'Brien" viene iniettato nel seguente codice JavaScript da PHP, esso causa un errore "non terminata stringa letterale" perché il cognome contiene un apostrofo che non è sfuggito.

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

Per evitare l'errore, utilizzare la funzione "addslashes" in PHP per sfuggire apici singoli, doppi apici, una barra rovesciata e un byte null. Per esempio:

<Script>
var name = '<? php echo addslashes ($ name);?>';
</ Script>