Neue Zeile im JavaScript-Warnfeld


389

Wie füge ich eine neue Zeile in ein JavaScript-Warnfeld ein?


1
PHP_EOL hat für mich funktioniert, obwohl viele andere Antworten hier nicht ...
Hayden Thring

Antworten:


593

\nfügt eine neue Zeile ein - \nals Steuercode für eine neue Zeile.

alert("Line 1\nLine 2");


7
Vollständig Cross-Browser
Justin Johnson

4
Wenn ich in meiner Warnmeldung \ n verwende, wird der Dialog nicht einmal in der ASP.NET-Anwendung angezeigt. Hat Microsoft ein Problem damit :)
Hammad Khan

20
Für den Krokodiljäger müssen Sie in ASP.NET hinter Code-Warnungen Escape-Zeichen verwenden. Dies bedeutet Registerblabla (bla, bla, "alert ('hi \\ nhi second line')")
NicolasT

5
In ASP.NET MVC4 habe ich </br>stattdessen \neine neue Zeile abgerufen .
Kevin Meredith

2
Ich arbeite in MVC 4 und erstelle confirm()im onsubmitFalle eines Html.BeginForm(). \nfunktioniert bei mir nicht Ich erhalte eine Illegal tokenFehlermeldung, wenn der Code getroffen wird. Anscheinend müssen Sie sowohl dem Zeilenumbruch als auch dem Backslash entkommen, der den Zeilenumbruch erzeugt, wie \\n
folgt


40

Sie müssen doppelte Anführungszeichen verwenden, um spezielle Zeichen wie \ n \ t usw. in js Alarmfeld anzuzeigen, zum Beispiel in PHP-Skript:

$string = 'Hello everybody \n this is an alert box';
echo "<script>alert(\"$string\")</script>";

Ein zweites mögliches Problem tritt jedoch auf, wenn Sie eine Zeichenfolge anzeigen möchten, die in doppelten Anführungszeichen angegeben ist.

siehe Linktext

Wenn die Zeichenfolge in doppelte Anführungszeichen (") eingeschlossen ist, interpretiert PHP mehr Escape-Sequenzen für Sonderzeichen

Escape-Sequenzen \ n werden als 0x0A ASCII Escaped-Zeichen transformiert und dieses Zeichen wird nicht im Warnfeld angezeigt. Die Lösung besteht darin, dieser speziellen Sequenz zu entkommen:

$s = "Hello everybody \\n this is an alert box";
echo "<script>alert(\"$string\")</script>";

Wenn Sie nicht wissen, wie die Zeichenfolge eingeschlossen ist, müssen Sie Sonderzeichen in ihre Escape-Sequenzen umwandeln

$patterns = array("/\\\\/", '/\n/', '/\r/', '/\t/', '/\v/', '/\f/');
$replacements = array('\\\\\\', '\n', '\r', '\t', '\v', '\f');
$string = preg_replace($patterns, $replacements, $string);
echo "<script>alert(\"$string\")</script>";

29

In C # habe ich:

alert('Text\\n\\nSome more text');

Es wird angezeigt als:

Text

Noch etwas Text


14

Liste der Sonderzeichencodes in JavaScript:

Code    Outputs
\'  single quote
\"  double quote
\\  backslash
\n  new line
\r  carriage return
\t  tab
\b  backspace
\f  form feed

9
alert("text\nnew Line Text");

Geändert: Sie müssen keine zusätzlichen Anführungszeichen und Zeichenfolgen haben


8

Wenn Sie eine Javascript-Warnung aus einer PHP-Variablen schreiben möchten, müssen Sie vor "\ n" ein weiteres "\" hinzufügen. Stattdessen funktioniert das Alarm-Popup nicht.

Ex:

PHP :
$text = "Example Text : \n"
$text2 = "Example Text : \\n"

JS:
window.alert('<?php echo $text; ?>');  // not working
window.alert('<?php echo $text2; ?>');  // is working

Warum wird diese Antwort unterschätzt? Wenn Sie beim Programmieren von Webseiten viel dynamischer denken, ist dies eine große Hilfe.
Jimwel Anobong

Beim Festlegen einer Variablen in PHP mit doppelten Anführungszeichen sucht PHP nach Variablen in doppelten Anführungszeichen. Theoretisch kostet dies Ressourcen. Eine einfache und unkomplizierte Möglichkeit, js alerttext in PHP zu erstellen, besteht darin, einfache Anführungszeichen zu verwenden und Variablen außerhalb der einzelnen qoutes hinzuzufügen, z. B. $ jsAlert = 'bla bla'. $ Var. ' \ nmehr bla bla ';
Terradon

Ich stimme zu, aber Sie können nie tun, was Sie gesagt haben. Beispiel für einen Anwendungsfall: Wenn alle Zeichenfolgenvariablen aus PHP stammen, können Sie nicht für jede Zeichenfolge, die einen Zeilenumbruch benötigt, eine bestimmte Behandlung schreiben.
Julha

3

Nur für den Fall, dass dies jemandem hilft, musste ich bei der Ausführung von C # -Code dahinter ein doppeltes Escapezeichen verwenden oder es wurde ein JavaScript-Fehler "nicht abgeschlossene Zeichenfolgenkonstante" angezeigt:

ScriptManager.RegisterStartupScript(this, this.GetType(), "scriptName", "alert(\"Line 1.\\n\\nLine 2.\");", true);

3

Funktioniert mit, \naber wenn sich das Skript in einem Java-Tag befindet, müssen Sie schreiben\\\n

<script type="text/javascript">alert('text\ntext');</script>

oder

<h:commandButton action="#{XXXXXXX.xxxxxxxxxx}" value="XXXXXXXX" 
    onclick="alert('text\\\ntext');" />

Innerhalb von Java-Tags müssen Sie es nur zweimal maskieren. Wie in<%out.print("alert('First line\\nSecond line.')");%>
Third_eye

3

alert('The transaction has been approved.\nThank you');

Fügen Sie einfach einen Zeilenumbruch \ n hinzu.

alert('The transaction has been approved.\nThank you');
//                                       ^^

Das hat Michael Gattuso vor sechseinhalb Jahren gesagt. Seine Antwort wurde angenommen. Dies scheint nichts Neues zu sagen und ist im Grunde eine Kopie davon.
Quentin

@ Quentin: Der Unterschied besteht in einfachen oder doppelten Anführungszeichen ... funktioniert in beide Richtungen, was Michael Gattuso nicht erwähnt hat.
Ole Sauffaus

@OleSauffaus - Das ist ein irrelevanter Unterschied.
Quentin


1

Danke für die Hinweise. Nur mit dem "+" - Zeichen kann ich es zum Laufen bringen. Dies ist die letzte Zeile einer Funktion, die einige Zahlen hinzufügt. Ich lerne gerade selbst JavaScript:

alert("Line1: The sum is  " + sum + "\n" + "Line 2");

1

\n funktioniert jedoch nicht, wenn Sie sich im Java-Code befinden:

<% System.out.print("<script>alert('Some \n text')</script>"); %>

Ich weiß, dass es keine Antwort ist, dachte nur, dass es wichtig ist.


Ich meinte Java. Wie auf einer JSP-Seite.
Third_eye

2
Dann solltest du einfach dem Escape-Charakter entkommen <% System.out.print("<script>alert('Some \\n text')</script>"); %>.
Zamber

1

Verwenden Sie das neue Zeilenzeichen eines Javascript anstelle von '\ n'. Beispiel: "Hello \ nWorld" Verwenden Sie "Hello \ x0AWorld". Es funktioniert großartig!


Ist das nicht \xAdasselbe wie \n?
Cristik


0

Wenn in der JAVA-App eine Nachricht aus der Datei "Eigenschaften" gelesen wird.

Aufgrund der doppelten Kompilierung von Java-HTML,

Du brauchst doppelte Flucht.

jsp.msg.1=First Line \\nSecond Line

wird darin enden, dass

First Line
Second Line

-1

Ich habe gesehen, dass einige Leute in MVC Probleme damit hatten, also ... eine einfache Möglichkeit, '\ n' mit dem Modell und in meinem Fall sogar mit einem übersetzten Text zu übergeben, ist die Verwendung von HTML.Raw zum Einfügen des Textes. Das hat es für mich behoben. Im folgenden Code kann Model.Alert Zeilenumbrüche wie "Hello \ nWorld" enthalten ...

alert("@Html.Raw(Model.Alert)");


-2

Ein neues Zeilenzeichen in Javascript kann mit verwendet werden \n

Dies kann mit erfolgen

alert("first line \n second line \n third line");

Ausgabe :

erste Linie

zweite Reihe

dritte Zeile

hier ist eine jsfiddle, die dafür vorbereitet ist.


-2

Ich habe verwendet: "\ n \ r" - es funktioniert jedoch nur in doppelten Anführungszeichen.

var fvalue = "foo";
var svalue = "bar";
alert("My first value is: " + fvalue + "\n\rMy second value is: " + svalue);

will alert as:

My first value is: foo
My second value is: bar

1
Die richtige Reihenfolge ist, wenn Sie darauf bestehen, die CRLF-Kündigung zu verwenden \r\n, nicht \n\r.
Cristik
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.