Новая строка в окне предупреждения JavaScript

389

Как вставить новую строку в окно предупреждения JavaScript?

микроб
источник
1
PHP_EOL работал для меня, хотя многие другие ответы здесь не ...
Хайден

Ответы:

593

\nвведет новую строку в \nкачестве управляющего кода для новой строки.

alert("Line 1\nLine 2");

Майкл Гаттузо
источник
7
Полностью кросс-браузер
Джастин Джонсон
4
Если я использую \ n в моем сообщении с предупреждением, диалоговое окно даже не отображается в приложении ASP.NET. Есть ли у Microsoft проблемы с этим :)
Хаммад Хан
20
Охотнику за крокодилами в ASP.NET за кодами оповещений необходимо использовать escape-символы, это означает Registerblabla (bla, bla, "alert ('hi \\ nhi second line')")
NicolasT
5
В ASP.NET MVC4 я использовал </br>вместо того, \nчтобы получить новую строку.
Кевин Мередит
2
Я работаю в MVC 4, и создаю confirm()в onsubmitслучае Html.BeginForm(). \nне работает для меня. Я получаю сообщение Illegal tokenоб ошибке при получении кода. По-видимому, вам нужно экранировать как символ новой строки, так и обратную косую черту, которая создает символ новой строки, например:\\n
Келан Крумме
40

Вы должны использовать двойные кавычки для отображения специального символа, такого как \ n \ t и т. д. ... в окне предупреждения js, например, в php-скрипте:

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

Но вторая возможная проблема возникает, когда вы хотите отобразить строку, указанную в двойных кавычках.

см текст ссылки

Если строка заключена в двойные кавычки ("), PHP будет интерпретировать больше escape-последовательностей для специальных символов

escape-последовательности \ n преобразуются в 0x0A ASCII Escape-символ, и этот символ не отображается в окне предупреждения. Решение состоит в том, чтобы избежать этой специальной последовательности:

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

если вы не знаете, как заключена строка, вам нужно преобразовать специальные символы в их 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>";
Greg
источник
29

В C # я сделал:

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

Отображается как:

Текст

Еще немного текста

Пол Х
источник
14

Список кодов специальных символов в 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");

Изменено: вам не нужно иметь дополнительные кавычки и строки

Басем Олимы
источник
8

Если вы хотите записать в javascript предупреждение из переменной php, вы должны добавить другой «\» перед «\ n». Вместо этого всплывающее окно не работает.

например:

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
источник
Почему этот ответ недооценен? если вы думаете более динамично с точки зрения программирования веб-страниц, это большая помощь.
Jimwel Anobong
При установке переменной в PHP с двойными кавычками, PHP проверяет переменные внутри двойных кавычек. Теоретически это стоит ресурсов. Простой и понятный способ создания js alertttext в PHP - использование одинарных кавычек и добавление переменных вне одиночных кавычек, например, $ jsAlert = 'bla bla'. $ Var. ' \ nmore бла бла ';
Террадон
Я согласен, но ты никогда не сможешь сделать так, как сказал. Пример использования, когда все строковые переменные происходят из PHP, вы не можете написать конкретную обработку для каждой строки, которая нуждается в переносе строки.
Julha
3

На всякий случай это кому-нибудь поможет, при выполнении этого из кода C # мне пришлось использовать двойной escape-символ, или я получил ошибку JavaScript «неопределенная строковая константа»:

ScriptManager.RegisterStartupScript(this, this.GetType(), "scriptName", "alert(\"Line 1.\\n\\nLine 2.\");", true);
Сэр криспалот
источник
3

Работает с, \nно если скрипт в тег Java, вы должны написать\\\n

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

или

<h:commandButton action="#{XXXXXXX.xxxxxxxxxx}" value="XXXXXXXX" 
    onclick="alert('text\\\ntext');" />
Дэвид
источник
Внутри Java-тегов вам просто нужно дважды избежать этого. Как в<%out.print("alert('First line\\nSecond line.')");%>
Third_eye
3

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

Просто добавьте символ новой строки \ n.

alert('The transaction has been approved.\nThank you');
//                                       ^^
Мухаммед Авайс
источник
Это то, что Майкл Гаттузо сказал шесть с половиной лет назад. Его ответ был принят. Это, кажется, не говорит ничего нового, и в основном является копией этого.
Квентин
@Quentin: Разница между одинарными и двойными кавычками ... работает в обе стороны, о чем Майкл Гаттузо не упомянул.
Оле Сауффаус
@OleSauffaus - это не имеет значения разница.
Квентин,
1

Спасибо за подсказки. Использование знака «+» - единственный способ заставить его работать. Это последняя строка функции, которая добавляет несколько чисел. Я просто изучаю JavaScript сам:

alert("Line1: The sum is  " + sum + "\n" + "Line 2");
user2133139
источник
1

\n не будет работать, если вы внутри Java-кода:

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

Я знаю, что это не ответ, просто думал, что это важно.

третий глаз
источник
Я имел в виду Java. Как на странице JSP.
3rd_eye
2
Тогда вы должны просто избежать побег персонажа <% System.out.print("<script>alert('Some \\n text')</script>"); %>.
Замбер
1

используйте символ новой строки javascript вместо '\ n' .. например: "Hello \ nWorld" используйте "Hello \ x0AWorld". Это прекрасно работает !!

Читра
источник
Разве не так \xAже, как \n?
Кристик
0

В приложении JAVA, если сообщение читается из файла "свойств".

Из-за двойной компиляции Java-HTML,

тебе понадобится двойной побег.

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

приведет к

First Line
Second Line
BiScOtTiNo
источник
-1

Я видел, что у некоторых людей были проблемы с этим в MVC, поэтому ... простой способ передать '\ n' с помощью модели, а в моем случае даже с использованием переведенного текста, это использовать HTML.Raw для вставки текста. Это исправило это для меня. В приведенном ниже коде Model.Alert может содержать символы новой строки, например «Hello \ nWorld» ...

alert("@Html.Raw(Model.Alert)");
Энди
источник
-1

Вы можете использовать \ n для новой строки

alert("Welcome\nto Jumanji");

alert("Welcome\nto Jumanji");

Арун Карнават
источник
-2

Новый символ строки в javascript может быть достигнут с помощью \n

Это можно сделать с помощью

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

Вывод :

первая строка

вторая линия

третья строка

вот jsfiddle, подготовленный к тому же.

Ясир Шейх
источник
-2

Я использовал: "\ n \ r" - он работает только в двойных кавычках.

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
источник
1
Правильный порядок, если вы настаиваете на использовании CRLF, - \r\nнет \n\r.
Кристик