JavaScript警告ボックスの改行


389

JavaScriptアラートボックスに新しい行を挿入するにはどうすればよいですか?


1
PHP_EOLはうまくいきましたが、他の多くの回答ではうまくいきませんでした...
Hayden Thring

回答:


593

\n新しい行を\n挿入します-新しい行の制御コードです。

alert("Line 1\nLine 2");


7
ブラウザを完全にクロス
Justin Johnson、

4
警告メッセージで\ nを使用すると、ダイアログはASP.NETアプリケーションでも表示されません。Microsoftはこれに問題がありますか:)
Hammad Khan

20
コードアラートの背後にあるASP.NETのワニハンターには、エスケープ文字を使用する必要があります。つまり、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
Kehlan Krumme


40

phpスクリプトの例のjsアラートボックスで\ n \ tなどの特殊文字を表示するには、二重引用符を使用する必要があります。

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

しかし、二重引用符で囲まれた文字列を表示したい場合、2つ目の問題が発生します。

リンクテキストを見る

文字列が二重引用符( ")で囲まれている場合、PHPは特殊文字のエスケープシーケンスをさらに解釈します。

エスケープシーケンス\ nは0x0A ASCIIエスケープ文字として変換され、この文字は警告ボックスに表示されません。解決策は、この特別なシーケンスをエスケープすることです:

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

文字列の囲み方がわからない場合は、特殊文字をエスケープシーケンスに変換する必要があります。

$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

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

PHP変数からJavaScriptアラートを書き込む場合は、「\ 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

なぜこの答えは過小評価されているのですか?あなたがウェブページのプログラミングに関してもっと動的に方法を考えているなら、これは大きな助けです。
Jimwel Anobong 2017年

PHPで二重引用符を使用して変数を設定すると、PHPは二重引用符内の変数をチェックします。理論的には、これにはリソースがかかります。PHPでjsアラートテキストを作成するシンプルで簡単な方法は、単一引用符を使用し、$ jsAlert = 'bla bla'。$ var。\ nmore bla bla ';
テラドン

私は同意しますが、あなたが言ったように行うことはできません。ユースケースの例では、すべての文字列変数がPHPからのものである場合、改行が必要な各文字列に対して特定の処理を記述できません。
Julha

3

これがだれにも役立つ場合に備えて、C#コードの背後からこれを行う場合、ダブルエスケープ文字を使用する必要がありました。

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タグ内では、2回エスケープするだけです。のように<%out.print("alert('First line\\nSecond line.')");%>
third_eye 2014年

3

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

改行文字\ nを追加するだけです。

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

それが、6年半前にMichael Gattusoが言ったことです。彼の答えは受け入れられた。これは新しいことを何も言っていないようで、基本的にはそのコピーです。
クエンティン2016年

@Quentin:違いは一重引用符と二重引用符です... Michael Gattusoは言及しなかった両方の方法で機能します。
Ole Sauffaus、2017

@OleSauffaus —これは無関係な違いです。
クエンティン、


1

ヒントをありがとう。「+」記号を使用することが、それを機能させる唯一の方法です。これは、いくつかの数値を追加する関数の最後の行です。私はJavaScriptを自分で学習しているだけです。

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

1

\n ただし、Javaコード内にいる場合は機能しません。

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

私はそれが答えではないことを知っています、それが重要だと思っただけです。


私はJavaを意味していました。JSPページと同様。
third_eye 2014年

2
次に、エスケープ文字をエスケープするだけです<% System.out.print("<script>alert('Some \\n text')</script>"); %>
zamber 2014

1

'\ n'の代わりにJavaScriptの改行文字を使用してください。例:「Hello \ nWorld」use「Hello \ x0AWorld」


\xAと同じではありません\nか?
Cristik 2016年


0

JAVAアプリで、メッセージが「プロパティ」ファイルから読み取られた場合。

二重コンパイルjava-htmlにより、

ダブルエスケープが必要です。

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

結果になります

First Line
Second Line

-1

MVCでこれに問題がある人がいるのを見たので、モデルを使用して '\ n'を渡す簡単な方法は、私の場合は翻訳されたテキストを使用する場合でも、HTML.Rawを使用してテキストを挿入することです。それで解決しました。以下のコードでは、Model.Alertに "Hello \ nWorld"などの改行を含めることができます...

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



-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

1
CRLFターミネーションの使用を主張する場合、正しい順序は\r\nではなく\n\rです。
Cristik 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.