Nouvelle ligne dans la boîte d'alerte JavaScript


389

Comment mettre une nouvelle ligne dans une boîte d'alerte JavaScript?


1
PHP_EOL a fonctionné pour moi, mais comme beaucoup d'autres réponses ici ne l'ont pas ....
Hayden Thring

Réponses:


593

\nmettra une nouvelle ligne dedans - \nétant un code de contrôle pour la nouvelle ligne.

alert("Line 1\nLine 2");


7
Navigateur complètement croisé
Justin Johnson

4
Si j'utilise \ n dans mon message d'alerte, la boîte de dialogue ne s'affiche même pas dans l'application ASP.NET. Est-ce que Microsoft a un problème avec cela :)
Hammad Khan

20
Pour Le chasseur de crocodiles, dans ASP.NET derrière les alertes de code, vous devez utiliser des caractères d'échappement, cela signifie Registerblabla (bla, bla, "alert ('hi \\ nhi deuxième ligne')")
NicolasT

5
Dans ASP.NET MVC4, j'ai utilisé </br>au lieu de \npour obtenir une nouvelle ligne.
Kevin Meredith

2
Je travaille dans MVC 4 et je crée un confirm()en onsubmitcas de Html.BeginForm(). \nne fonctionne pas pour moi. Je reçois une Illegal tokenerreur lorsque le code est frappé. Apparemment, vous devez échapper à la fois au caractère de nouvelle ligne et à la barre oblique inverse qui crée le caractère de nouvelle ligne, comme ceci:\\n
Kehlan Krumme


40

vous devez utiliser des guillemets doubles pour afficher des caractères spéciaux comme \ n \ t etc ... dans la boîte d'alerte js par exemple dans le script php:

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

Mais un deuxième problème possible survient lorsque vous souhaitez afficher une chaîne spécifiée en guillemets doubles.

voir le texte du lien

Si la chaîne est placée entre guillemets ("), PHP interprétera plus de séquences d'échappement pour les caractères spéciaux

les séquences d'échappement \ n sont transformées en caractères d'échappement ASCII 0x0A et ce caractère n'est pas affiché dans la boîte d'alerte. La solution consiste à échapper à cette séquence spéciale:

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

si vous ne savez pas comment la chaîne est enfermée, vous devez transformer les caractères spéciaux en leurs séquences d'échappement

$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

En C # j'ai fait:

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

Il s'affiche comme:

Texte

Un peu plus de texte


14

Liste des codes de caractères spéciaux en 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");

Modifié: vous n'avez pas besoin d'avoir les guillemets et les chaînes supplémentaires


8

Lorsque vous voulez écrire en alerte javascript à partir d'une variable php, vous devez ajouter un autre "\" avant "\ n". Au lieu de cela, le pop-up d'alerte ne fonctionne pas.

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

Pourquoi cette réponse est-elle sous-estimée? si vous pensez de manière plus dynamique en termes de programmation de pages Web, c'est une grande aide.
Jimwel Anobong

Lorsque vous définissez une variable en PHP avec des guillemets doubles, PHP vérifie les variables à l'intérieur des guillemets doubles. Théoriquement, cela coûte des ressources. Un moyen simple et direct de créer js alerttext en PHP, utilise des guillemets simples et ajoute des variables en dehors des qoutes simples, comme $ jsAlert = 'bla bla'. $ Var. ' \ nmore bla bla ';
Terradon

Je suis d'accord mais tu ne peux jamais faire comme tu l'as dit. Exemple de cas d'utilisation, lorsque toutes les variables de chaîne proviennent de PHP, vous ne pouvez pas écrire une gestion particulière pour chaque chaîne qui a besoin d'un saut de ligne.
Julha

3

Juste au cas où cela aiderait quelqu'un, lorsque je faisais cela à partir du code C #, j'ai dû utiliser un double caractère d'échappement ou j'ai eu une erreur JavaScript "constante de chaîne non terminée":

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

3

Fonctionne avec \nmais si le script est dans une balise java, vous devez écrire\\\n

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

ou

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

Dans les balises Java, il vous suffit de l'échapper deux fois. Comme dans<%out.print("alert('First line\\nSecond line.')");%>
third_eye

3

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

Ajoutez simplement un caractère de nouvelle ligne \ n.

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

C'est ce que Michael Gattuso a dit il y a six ans et demi. Sa réponse a été acceptée. Cela ne semble rien dire de nouveau et en est essentiellement une copie.
Quentin

@Quentin: La différence est entre guillemets simples et doubles ... fonctionne dans les deux sens, ce que Michael Gattuso n'a pas mentionné.
Ole Sauffaus

@OleSauffaus - C'est une différence non pertinente.
Quentin


1

Merci pour les indices. L'utilisation du signe "+" est la seule façon de le faire fonctionner. Il s'agit de la dernière ligne d'une fonction qui ajoute des nombres. J'apprends juste JavaScript moi-même:

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

1

\n ne fonctionnera pas si vous êtes dans le code java:

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

Je sais que ce n'est pas une réponse, je pensais juste que c'était important.


Je voulais dire Java. Comme dans une page JSP.
third_eye

2
Ensuite, vous devez simplement échapper au personnage d'échappement <% System.out.print("<script>alert('Some \\n text')</script>"); %>.
zamber le

1

utilisez le nouveau caractère de ligne d'un javascript au lieu de '\ n' .. par exemple: "Hello \ nWorld" utilisez "Hello \ x0AWorld" Cela fonctionne très bien !!


N'est-ce pas \xAla même chose que \n?
Cristik


0

Dans l'application JAVA, si le message est lu à partir du fichier "propriétés".

En raison de la double compilation java-html,

vous aurez besoin d'une double évasion.

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

aura pour résultat

First Line
Second Line

-1

J'ai vu que certaines personnes avaient des problèmes avec cela dans MVC, donc ... un moyen simple de passer '\ n' en utilisant le modèle, et dans mon cas même en utilisant un texte traduit, est d'utiliser HTML.Raw pour insérer le texte. Cela m'a arrangé. Dans le code ci-dessous, Model.Alert peut contenir des sauts de ligne, comme "Hello \ nWorld" ...

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


-2

Un nouveau caractère de ligne en javascript peut être obtenu en utilisant \n

Cela peut être fait en utilisant

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

Production :

Première ligne

deuxième ligne

troisième ligne

voici un jsfiddle préparé pour le même.


-2

J'ai utilisé: "\ n \ r" - cela ne fonctionne que entre guillemets.

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'ordre correct, si vous insistez pour utiliser la terminaison CRLF \r\n, ne l' est pas \n\r.
Cristik
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.