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 apice e fuggire altri due apostrofi che potrebbero essere contenuti nella stringa di testo , come ad esempio un apostrofo , o l'interprete JavaScript si confonde . Quando si riceve un " letterale stringa non terminato " errore in JavaScript , vuol dire che hai iniziato una stringa di caratteri che specifica per essere contenuta in quella stringa , una stringa letterale , ma non hai mai designato la fine della stringa , lasciando la stringa senza terminazione . Poiché JavaScript non sa dove la stringa si ferma e dove il codice JavaScript continua , si ferma e ti dà un errore . Compreso Linea Breaks
JavaScript , non è possibile includere interruzioni di riga in una stringa per inclusi a capo effettivo nella definizione stringa . Una dichiarazione stringa su più righe in JavaScript causerà un errore " non terminata stringa letterale" . Per esempio :
//questo produce un " letterale stringa non terminata " stringa errorvar = " Stampa thisand allora questo su un'altra linea " ;
Inserisci le nuove linee in una stringa JavaScript utilizzando la nuova linea di carattere "\\ n ". Ad esempio :
var stringa = " Stampa \\ ne poi questo su un'altra linea " ;
Utilizzo delle variabili PHP con interruzioni di riga
JavaScript e PHP sono spesso utilizzati insieme, come JavaScript è un linguaggio di scripting lato client e PHP è un linguaggio lato server . Tuttavia, se si inietta una variabile PHP che contiene interruzioni di riga in codice JavaScript , si riceverà un errore " non terminata stringa letterale" . Dal momento che le interruzioni di riga vengono inseriti dinamicamente in fase di esecuzione , questo può essere difficile eseguire il debug . Per esempio :
< ? Php $ testo = <<< ENDPHP testo su più linesis OK con il heredoc syntaxEND ; ? >
impropriamente Nesting singole e doppie virgolette
Javascript e molti altri linguaggi di programmazione , singolo e le virgolette doppie possono essere annidati uno dentro l'altro per creare stringhe che contengono citazioni . Se non lo fate correttamente nido virgolette singole e doppie in JavaScript , il risultato è di solito un errore " non terminata stringa letterale" . Per esempio :
//questo produce un " letterale stringa non terminato " errore a causa della stringa apostrophevar = ' E lei disse: "Io non la penso così "' ;
iniezione di citazioni da PHP
simili a iniezione variabili PHP con caratteri di nuova riga , se si inietta le variabili PHP con le citazioni senza escape , si può anche 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 . Per esempio, quando " Jack O'Brien " viene iniettato il seguente codice JavaScript da PHP , che provoca 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 virgolette singole , virgolette, una barra rovesciata e un byte null . Per esempio :