Nuova riga nella casella di avviso JavaScript


389

Come si inserisce una nuova riga in una casella di avviso JavaScript?


1
PHP_EOL ha funzionato per me, anche se molte altre risposte qui non ...
Hayden Thring,

Risposte:


593

\ninserirà una nuova riga - \nessendo un codice di controllo per la nuova riga.

alert("Line 1\nLine 2");


7
Completamente cross-browser
Justin Johnson il

4
Se uso \ n nel mio messaggio di avviso, la finestra di dialogo non viene nemmeno visualizzata nell'applicazione ASP.NET. Microsoft ha problemi con questo :)
Hammad Khan,

20
Per Il cacciatore di coccodrilli, in ASP.NET dietro gli avvisi di codice, devi usare i caratteri di escape, questo significa Registerblabla (bla, bla, "alert ('hi \\ nhi seconda riga')")
NicolasT,

5
In ASP.NET MVC4, ho usato </br>invece di \nottenere una nuova linea.
Kevin Meredith,

2
Sto lavorando in MVC 4 e sto creando un confirm()in onsubmitcaso di un Html.BeginForm(). \nNon funziona per me. Illegal tokenViene visualizzato un errore quando viene colpito il codice. Apparentemente devi sfuggire sia al personaggio newline che alla barra rovesciata che crea il personaggio newline, in questo modo:\\n
Kehlan Krumme,

52

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

Produzione:

some text
more text in a new line


40

devi usare virgolette doppie per visualizzare caratteri speciali come \ n \ t ecc ... nella casella di avviso js per esempio nello script php:

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

Ma un secondo possibile problema si presenta quando si desidera visualizzare una stringa specificata tra virgolette doppie.

vedere il testo del link

Se la stringa è racchiusa tra virgolette ("), PHP interpreterà più sequenze di escape per caratteri speciali

le sequenze di escape \ n vengono trasformate come carattere di escape ASCII 0x0A e questo carattere non viene visualizzato nella casella di avviso. La soluzione consiste nel fuggire da questa sequenza speciale:

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

se non sai come è racchiusa la stringa, devi trasformare caratteri speciali nelle loro sequenze di escape

$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 # ho fatto:

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

Viene visualizzato come:

Testo

Qualche altro testo


14

Elenco di codici di caratteri speciali 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");

Modificato: non è necessario disporre di virgolette e stringhe aggiuntive


8

Quando vuoi scrivere nell'avviso javascript da una variabile php, devi aggiungere un altro "\" prima di "\ n". Invece il pop-up di avviso non funziona.

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

Perché questa risposta è sottovalutata? se stai pensando in modo più dinamico in termini di programmazione di pagine Web, questo è di grande aiuto.
Jimwel Anobong,

Quando si imposta un var in PHP con virgolette doppie, PHP controlla le variabili tra virgolette doppie. Teoricamente, questo costa risorse. Un modo semplice e diretto per creare js alerttext in PHP, è usare virgolette singole e aggiungere variabili al di fuori dei singoli qoutes, come $ jsAlert = 'bla bla'. $ Var. ' \ nmore bla bla ';
Terradon,

Sono d'accordo ma non puoi mai fare come hai detto. Esempio di caso d'uso, quando tutte le variabili di stringa provengono da PHP, non è possibile scrivere una gestione particolare per ogni stringa che necessita di un'interruzione di riga.
Julha,

3

Nel caso in cui ciò aiuti chiunque, quando lo faccio dal codice C # dietro ho dovuto usare un doppio carattere di escape o ho ricevuto un errore JavaScript "costante di stringa non terminata":

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

3

Funziona con, \nma se lo script è in un tag Java è necessario scrivere\\\n

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

o

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

All'interno dei tag Java è sufficiente evitarlo due volte. Come in<%out.print("alert('First line\\nSecond line.')");%>
terzo_occhio

3

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

Aggiungi un carattere di nuova riga \ n.

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

Questo è ciò che Michael Gattuso ha detto sei anni e mezzo fa. La sua risposta è stata accettata. Questo non sembra dire nulla di nuovo ed è sostanzialmente una copia di ciò.
Quentin,

@Quentin: La differenza è tra virgolette singole o doppie ... funziona in entrambi i modi, cosa che Michael Gattuso non ha menzionato.
Ole Sauffaus,

@OleSauffaus - Questa è una differenza irrilevante.
Quentin,


1

Grazie per i suggerimenti. L'uso del segno "+" è l'unico modo per farlo funzionare. Questa è l'ultima riga di una funzione che aggiunge alcuni numeri. Sto solo imparando JavaScript da solo:

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

1

\n non funzionerà se ti trovi all'interno del codice Java:

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

So che non è una risposta, ho solo pensato che fosse importante.


Intendevo Java. Come in una pagina JSP.
third_eye

2
Quindi dovresti semplicemente sfuggire al personaggio di fuga <% System.out.print("<script>alert('Some \\n text')</script>"); %>.
Zamber,

1

usa il nuovo carattere di riga di un javascript invece di '\ n' .. es: "Hello \ nWorld" usa "Hello \ x0AWorld" Funziona benissimo !!


Non è \xAlo stesso di \n?
Cristik,


0

Nell'app JAVA, se il messaggio viene letto dal file "proprietà".

A causa della doppia compilazione java-html,

avrai bisogno di una doppia fuga.

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

si tradurrà in

First Line
Second Line

-1

Ho visto alcune persone avere problemi con questo in MVC, quindi ... un modo semplice per passare '\ n' usando il Modello, e nel mio caso anche usando un testo tradotto, è usare HTML.Raw per inserire il testo. Ciò ha risolto il problema per me. Nel codice seguente, Model.Alert può contenere newline, come "Hello \ nWorld" ...

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


-2

È possibile ottenere un nuovo carattere di linea in JavaScript utilizzando \n

Questo può essere fatto usando

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

Produzione :

prima linea

seconda linea

terza linea

ecco un jsfiddle preparato per lo stesso.


-2

Ho usato: "\ n \ r" - funziona solo tra virgolette doppie.

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
L'ordine corretto, se insisti nell'utilizzare la terminazione CRLF \r\n, non lo è \n\r.
Cristik,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.