Nueva línea en el cuadro de alerta de JavaScript


389

¿Cómo se pone una nueva línea en un cuadro de alerta de JavaScript?


1
PHP_EOL funcionó para mí, aunque muchas otras respuestas aquí no ...
Hayden Thring

Respuestas:


593

\npondrá una nueva línea, \nsiendo un código de control para una nueva línea.

alert("Line 1\nLine 2");


77
Navegador completamente cruzado
Justin Johnson, el

44
Si uso \ n en mi mensaje de alerta, el cuadro de diálogo ni siquiera se muestra en la aplicación ASP.NET. ¿Microsoft tiene un problema con esto :)
Hammad Khan

20
Para el cazador de cocodrilos, en ASP.NET detrás de las alertas de código, debe usar caracteres de escape, esto significa Registerblabla (bla, bla, "alert ('hi \\ nhi second line')")
NicolasT

55
En ASP.NET MVC4, solía en </br>lugar de \nobtener una nueva línea.
Kevin Meredith

2
Estoy trabajando en MVC 4, y creando una confirm()en el onsubmitcaso de una Html.BeginForm(). \nno funciona para mi Recibo un Illegal tokenerror cuando se golpea el código. Aparentemente necesitas escapar tanto del personaje de nueva línea como de la barra diagonal inversa que crea el personaje de nueva línea, así:\\n
Kehlan Krumme

52

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

Salida:

some text
more text in a new line


40

tienes que usar comillas dobles para mostrar caracteres especiales como \ n \ t, etc ... en el cuadro de alerta js por ejemplo en script PHP:

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

Pero llega un segundo posible problema cuando desea mostrar una cadena especificada en comillas dobles.

ver texto del enlace

Si la cadena está entre comillas dobles ("), PHP interpretará más secuencias de escape para caracteres especiales

las secuencias de escape \ n se transforman como 0x0A ASCII Carácter escapado y este carácter no se muestra en el cuadro de alerta. La solución consiste en escapar de esta secuencia especial:

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

si no sabe cómo se encierra la cadena, debe transformar caracteres especiales en sus secuencias de 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

En C # hice:

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

Se muestra como:

Texto

Un poco más de texto


14

Lista de códigos de caracteres especiales 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");

Modificado: no necesita tener comillas y cadenas adicionales


8

Cuando desee escribir en una alerta de JavaScript desde una variable php, debe agregar otro "\" antes de "\ n". En cambio, la ventana emergente de alerta no funciona.

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

¿Por qué se subestima esta respuesta? Si está pensando de manera más dinámica en términos de programación de páginas web, esta es una gran ayuda.
Jimwel Anobong

Al establecer una var en PHP con comillas dobles, PHP busca variables dentro de las comillas dobles. Teóricamente, esto cuesta recursos. Una forma simple y directa de crear js alerttext en PHP, es usar comillas simples y agregar variables fuera de las qoutes simples, como $ jsAlert = 'bla bla'. $ Var. ' \ nmore bla bla ';
Terradon el

Estoy de acuerdo, pero nunca puedes hacer lo que dijiste. Ejemplo de uso, cuando todas las variables de cadena provienen de PHP, no puede escribir un manejo particular para cada cadena que necesita un salto de línea.
Julha

3

En caso de que esto ayude a alguien, al hacer esto desde el código C # detrás tuve que usar un carácter de escape doble o recibí un error de JavaScript "constante de cadena no terminada":

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

3

Funciona con, \npero si el script está en una etiqueta de Java, debe escribir\\\n

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

o

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

Dentro de las etiquetas Java solo necesitas escapar dos veces. Al igual que en<%out.print("alert('First line\\nSecond line.')");%>
third_eye

3

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

Simplemente agregue un carácter de nueva línea \ n.

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

Eso es lo que dijo Michael Gattuso hace seis años y medio. Su respuesta fue aceptada. Esto no parece decir nada nuevo, y es básicamente una copia de eso.
Quentin

@Quentin: La diferencia es entre comillas simples y dobles ... funciona en ambos sentidos, lo que Michael Gattuso no mencionó.
Ole Sauffaus

@OleSauffaus - Esa es una diferencia irrelevante.
Quentin


1

Gracias por las pistas. Usar el signo "+" es la única forma en que puedo hacer que funcione. Esta es la última línea de una función que agrega algunos números. Solo estoy aprendiendo JavaScript:

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

1

\n Sin embargo, no funcionará si estás dentro del código Java:

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

Sé que no es una respuesta, solo pensé que era importante.


Me refería a Java. Como en una página JSP.
third_eye

2
Entonces deberías escapar del personaje de escape <% System.out.print("<script>alert('Some \\n text')</script>"); %>.
zamber

1

use el nuevo carácter de línea de un javascript en lugar de '\ n' .. por ejemplo: "Hello \ nWorld" use "Hello \ x0AWorld" ¡Funciona muy bien!


¿No es lo \xAmismo que \n?
Cristik


0

En la aplicación JAVA, si el mensaje se lee del archivo de "propiedades".

Debido a la doble compilación java-html,

Necesitarás doble escape.

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

resultará en

First Line
Second Line

-1

Vi que algunas personas tenían problemas con esto en MVC, así que ... una manera simple de pasar '\ n' usando el Modelo, y en mi caso incluso usando un texto traducido, es usar HTML.Raw para insertar el texto. Eso me lo arregló. En el siguiente código, Model.Alert puede contener nuevas líneas, como "Hello \ nWorld" ...

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


-2

Se puede lograr un nuevo carácter de línea en JavaScript utilizando \n

Esto se puede hacer usando

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

Salida:

primera linea

segunda linea

tercera linea

Aquí hay un jsfiddle preparado para lo mismo.


-2

Solía: "\ n \ r", aunque solo funciona entre comillas dobles.

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
El orden correcto, si insiste en usar la terminación CRLF es \r\n, no \n\r.
Cristik
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.