บรรทัดใหม่ในกล่องเตือน 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 ข่าน

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()\nIllegal token\\n
Kehlan Krumme


40

คุณต้องใช้เครื่องหมายคำพูดคู่เพื่อแสดงอักขระพิเศษเช่น \ n \ t ฯลฯ ... ในกล่องแจ้งเตือน js สำหรับตัวอย่างในสคริปต์ php:

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

แต่ปัญหาที่เป็นไปได้ที่สองเกิดขึ้นเมื่อคุณต้องการแสดงสตริงที่ระบุในเครื่องหมายคำพูดคู่

ดูข้อความลิงค์

หากสตริงนั้นอยู่ในเครื่องหมายคำพูดคู่ ("), PHP จะตีความลำดับ escape เพิ่มเติมสำหรับอักขระพิเศษ

escape sequences \ n ถูกเปลี่ยนเป็น 0x0A อักขระ ASCII Escaped และอักขระนี้ไม่ปรากฏในกล่องเตือน โซลูชันประกอบด้วยเพื่อหลีกเลี่ยงลำดับพิเศษนี้:

$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 คุณต้องเพิ่ม "\" อื่นก่อน "\ 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

เมื่อตั้งค่า var ใน PHP ด้วยเครื่องหมายคำพูดคู่ PHP จะตรวจสอบตัวแปรภายในเครื่องหมายคำพูดคู่ ในทางทฤษฎีทรัพยากรนี้มีค่าใช้จ่าย วิธีที่ง่ายและตรงไปตรงมาในการสร้าง js alerttext ใน PHP ใช้คำพูดเดี่ยวและเพิ่มตัวแปรนอก qoutes เดี่ยวเช่น $ jsAlert = 'bla bla'. $ var. ' \ n อีก bla bla ';
Terradon

ฉันเห็นด้วย แต่คุณไม่สามารถทำอย่างที่คุณพูดได้ ตัวอย่างกรณีการใช้งานเมื่อตัวแปรสตริงทั้งหมดมาจาก PHP คุณไม่สามารถเขียนการจัดการเฉพาะสำหรับแต่ละสตริงที่ต้องการการหยุดบรรทัด
Julha

3

ในกรณีนี้จะช่วยให้ทุกคนเมื่อทำเช่นนี้จากรหัส C # ที่อยู่เบื้องหลังฉันต้องใช้ตัวละครสองครั้งที่หลบหนีหรือฉันได้รับข้อผิดพลาด "JavaScript คงที่สตริงคงที่"

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

3

ทำงานร่วมกับ\nแต่ถ้าสคริปต์เป็นจาวาแท็กคุณต้องเขียน\\\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');
//                                       ^^

นั่นคือสิ่งที่ Michael Gattuso พูดเมื่อหกปีที่แล้ว คำตอบของเขาได้รับการยอมรับ ดูเหมือนว่าจะไม่พูดอะไรใหม่และเป็นสำเนาของสิ่งนั้น
เควนติน

@ เคว็นติน: ความแตกต่างคือคำพูดเดียว - กับคำพูดสองเท่า ... ทำงานได้ทั้งสองวิธีซึ่ง Michael Gattuso ไม่ได้พูดถึง
Ole Sauffaus

@OleSauffaus - นั่นคือความแตกต่างที่ไม่เกี่ยวข้อง
เควนติน


1

ขอบคุณสำหรับคำแนะนำ การใช้เครื่องหมาย "+" เป็นวิธีเดียวที่ฉันจะทำให้ใช้งานได้ นี่คือบรรทัดสุดท้ายของฟังก์ชันที่เพิ่มตัวเลข ฉันแค่เรียนรู้ JavaScript ด้วยตนเอง:

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

1

\n จะไม่ทำงานถ้าคุณอยู่ในโค้ดจาวา:

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

ฉันรู้ว่ามันไม่ใช่คำตอบแค่คิดว่ามันสำคัญ


ฉันหมายถึง Java เช่นเดียวกับในหน้า JSP
third_eye

2
<% System.out.print("<script>alert('Some \\n text')</script>"); %>จากนั้นคุณก็ควรจะหนีตัวหนี
zamber

1

ใช้อักขระบรรทัดใหม่ของ javascript แทน '\ n' .. เช่น: "Hello \ nWorld" ใช้ "Hello \ x0AWorld" มันใช้งานได้ดีมาก !!


ไม่\xAเหมือนกัน\nใช่ไหม
Cristik

0

ในฐานะของECMAScript 2015คุณสามารถใช้ back-ticks (``) เพื่อใส่เทมเพลตเทมเพลตสำหรับสตริงหลายบรรทัดดังนี้:

alert(`Line1
Line2`);

ขาออก:

Line1
Line2

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

อักขระบรรทัดใหม่ใน 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

1
ลำดับที่ถูกต้องถ้าคุณยืนยันในการใช้การเลิกจ้าง CRLF คือไม่\r\n \n\r
Cristik
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.