Neue Zeile im JavaScript-Warnfeld

389

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

Keim
quelle
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");

Michael Gattuso
quelle
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
52

 alert("some text\nmore text in a new line");

Ausgabe:

some text
more text in a new line

Amarghosh
quelle
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>";
greg
quelle
29

In C # habe ich:

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

Es wird angezeigt als:

Text

Noch etwas Text

Paul H.
quelle
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
Bishnu Paudel
quelle
9
alert("text\nnew Line Text");

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

Basem Olimy
quelle
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
Julha
quelle
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);
Sir Crispalot
quelle
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');" />
David
quelle
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');
//                                       ^^
Muhammad Awais
quelle
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");
user2133139
quelle
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.

drittes Auge
quelle
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!

Chitra
quelle
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
BiScOtTiNo
quelle
-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)");
Andy
quelle
-1

Sie können \ n für neue Zeilen verwenden

alert("Welcome\nto Jumanji");

alert("Welcome\nto Jumanji");

Arun Karnawat
quelle
-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.

Yasser Shaikh
quelle
-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
user2344047
quelle
1
Die richtige Reihenfolge ist, wenn Sie darauf bestehen, die CRLF-Kündigung zu verwenden \r\n, nicht \n\r.
Cristik