Wenn Sie eine Zeichenfolge in JavaScript definieren , anbei erhalten Sie die String- Zeichen in Anführungszeichen. Wenn Sie die Zeichenfolge mit einem einfachen Anführungszeichen zu starten, müssen Sie die Zeichenfolge mit einem einfachen Anführungszeichen zu beenden und alle anderen entkommen Apostroph Zeichen, die in der Zeichenkette text enthalten sein könnten , wie z. B. ein Apostroph oder der JavaScript-Interpreter durcheinander . Wenn Sie ein " Nicht abgeschlossene String Literal " Fehler in JavaScript zu empfangen, bedeutet dies, dass Sie eine Zeichenfolge mit der Angabe Zeichen in diesem String enthalten sein , ein String-Literal begonnen , aber man kann nie das Ende des Strings bezeichnet , so dass die Schnur nicht abgeschlossen . Da JavaScript nicht weiß, wo der String aufhört und wo der JavaScript-Code weiter , stoppt er und gibt eine Fehlermeldung angezeigt. Inklusive Zeilenumbrüche
JavaScript können Sie keine Zeilenumbrüche in einem String , indem tatsächlichen Zeilenumbrüche im String -Definition. Eine mehrzeilige Zeichenfolge Erklärung JavaScript bewirkt einen " Nicht abgeschlossene String Literal "-Fehler. Zum Beispiel:
//Das erzeugt einen " Nicht abgeschlossene String Literal " errorvar string = "Print thisand dann auf einer anderen Linie ";
Einfügen neuer Zeilen in einem JavaScript-String mit dem neuen Zeile-Zeichen "\\ n ". Zum Beispiel:
var string = " drucken \\ nund dann auf einer anderen Linie ";
PHP Variablen mit Zeilenumbrüchen
JavaScript und PHP werden häufig zusammen verwendet, da JavaScript ist eine clientseitige Skriptsprache und PHP ist eine Server - Side-Sprache . Allerdings, wenn Sie eine PHP- Variable, die Zeilenumbrüche in JavaScript-Code enthält injizieren , erhalten Sie eine " Nicht abgeschlossene String Literal "-Fehler. Da die Zeilenumbrüche dynamisch zur Laufzeit eingefügt werden , kann dies schwierig sein , zu debuggen . Zum Beispiel: < ? Php $ text = <<< ENDPHP Text auf mehreren linesis OK mit dem heredoc syntaxEND ; > ?
Falsch Nesting einfachen und doppelten Anführungszeichen
JavaScript und den meisten anderen Programmiersprachen , Single und doppelte Anführungszeichen können ineinander geschachtelt werden , um Zeichenfolgen , die Anführungszeichen enthalten erstellen. Wenn Sie nicht richtig Nest einfachen und doppelten Anführungszeichen in JavaScript zu tun, ist das Ergebnis in der Regel ein " Nicht abgeschlossene String Literal "-Fehler. Zum Beispiel:
//Das erzeugt einen " Nicht abgeschlossene String Literal " Fehler wegen der apostrophevar string = ' Und sie sagte: "Ich glaube nicht " ';
spritzen Zitate von PHP
Ähnlich Einspritzen PHP-Variablen mit neuen Linie Zeichen , wenn Sie PHP-Variablen mit Anführungszeichen unescaped injizieren , können auch dazu führen, eine " Nicht abgeschlossene String Literal "-Fehler. Das folgende Beispiel kann eine der am schwierigsten zu debuggen , weil der Fehler zur Laufzeit und vielleicht nur gelegentlich auftreten . Zum Beispiel, wenn " Jack O'Brien " wird in den folgenden JavaScript-Code von PHP eingespritzt , verursacht es eine " Nicht abgeschlossene String Literal " Fehler, da der letzte Name einen Apostroph enthält , die nicht entgangen ist .
< ; script> var name = ' < php echo $ name ; ? >';
Um den Fehler zu vermeiden , verwenden Sie die " addslashes "-Funktion in PHP einfache Anführungszeichen zu entkommen, Anführungszeichen ein Backslash und ein Null- Byte . Zum Beispiel: