Apakah \n
urutan karakter baris baru universal dalam Javascript untuk semua platform? Jika tidak, bagaimana cara menentukan karakter untuk lingkungan saat ini?
Saya tidak bertanya tentang elemen HTML baris baru ( <BR/>
). Saya bertanya tentang urutan karakter baris baru yang digunakan dalam string JavaScript.
javascript
newline
Landon Kuhn
sumber
sumber
getValue
fungsi yang mengambilvalue
dan mengembalikanvalue.replace(/\r\n/g,'\n')
- hanya untuk menjaga output konsisten di seluruh browser / platform.Jawaban:
Saya baru saja menguji beberapa browser menggunakan JavaScript yang konyol ini:
IE8 dan Opera 9 menggunakan Windows
\r\n
. Semua browser lain yang saya uji (Safari 4 dan Firefox 3.5 pada Windows, dan Firefox 3.0 pada Linux) digunakan\n
. Mereka semua dapat menangani dengan\n
baik ketika mengatur nilai, meskipun IE dan Opera akan mengubahnya kembali menjadi\r\n
internal. Ada artikel SitePoint dengan beberapa perincian lagi yang disebut Garis akhiran dalam Javascript .Perhatikan juga bahwa ini tidak tergantung pada akhir baris aktual dalam file HTML itu sendiri (keduanya
\n
dan\r\n
memberikan hasil yang sama).Saat mengirimkan formulir, semua browser mengkanoniskan baris baru ke
%0D%0A
dalam penyandian URL. Untuk melihatnya, muat misalnyadata:text/html,<form><textarea name="foo">foo%0abar</textarea><input type="submit"></form>
dan tekan tombol kirim. (Beberapa browser memblokir memuat halaman yang dikirimkan, tetapi Anda dapat melihat nilai formulir yang dikodekan URL di konsol.)Saya tidak berpikir Anda benar-benar perlu melakukan banyak penentuan. Jika Anda hanya ingin membagi teks pada baris baru, Anda dapat melakukan sesuatu seperti ini:
sumber
\r\n
sebagai dua baris baru, bukan satu. Jika Anda ingin pendek,/\r?\n/g
mungkin akan melakukan (yang masih menggunakan Mac OS 9?)Ya, itu universal.
Meskipun
'\n'
adalah karakter baris baru universal , Anda harus ingat bahwa, tergantung pada input Anda, karakter baris baru mungkin didahului oleh karakter carriage return ('\r'
).sumber
Jangan gunakan "\ n". Coba saja ini:
Cukup masukkan back-slash dan terus truckin '! Bekerja seperti pesona.
sumber
tilde
karakter (jika tidak disebut backtick).~
Tilde vs`
Backtick .Mungkin paling mudah untuk hanya menangani semua case dari karakter baris baru daripada memeriksa case yang kemudian menerapkannya. Misalnya, jika Anda perlu mengganti baris baru maka lakukan hal berikut:
sumber
ya gunakan \ n, kecuali Anda menghasilkan kode html, di mana Anda ingin menggunakannya
<br />
sumber
Fungsi tautan email yang saya gunakan "% 0D% 0A"
[HTML]
sumber
Dapatkan pemisah garis untuk browser saat ini:
sumber
return textarea.value;
?JSON.stringify
hasil akan mengubah karakter? Jika saya mencoba untuk melihat hasil dalamalert()
panggilan, itu tidak menunjukkan kepada saya karakter kecuali saya tegaskan terlebih dahulu (bukan berarti char harus dapat dibaca manusia agar efektif, tentu saja)Catatan - saat menggunakan ExtendScript JavaScript (bahasa Adobe Scripting yang digunakan dalam aplikasi seperti Photoshop CS3 +), karakter yang digunakan adalah "\ r". "\ n" akan ditafsirkan sebagai karakter font, dan karenanya banyak font akan memiliki karakter blok.
Misalnya (untuk memilih lapisan bernama 'Catatan' dan menambahkan umpan baris setelah semua periode):
sumber
\n
dan<br/>
tidak bekerja di skrip Photoshop saya ... Terima kasih!Anda dapat menggunakan `` quotes (yang di bawah tombol Esc) dengan ES6. Jadi Anda dapat menulis sesuatu seperti ini:
sumber
Saya percaya itu - ketika Anda bekerja dengan string JS.
Namun, jika Anda menghasilkan HTML, Anda harus menggunakan
<br />
tag (bukan\n
, karena Anda tidak lagi berurusan dengan JS)sumber
Saya memiliki masalah dalam mengekspresikan baris baru dengan \ n atau \ r \ n .
Ajaib karakter \ r yang digunakan untuk carriage return bekerja untuk saya seperti baris baru.
Jadi dalam beberapa kasus, berguna untuk mempertimbangkan juga.
sumber
Cetakan:
sumber
Pengamatan praktis ... Dalam skrip NodeJS saya, saya memiliki fungsi berikut:
Pertama saya hanya punya "\ n" tetapi saya perhatikan bahwa ketika saya membuka file log di Notepad, itu menunjukkan semua entri pada baris yang sama. Notepad ++ di sisi lain menunjukkan entri masing-masing pada baris mereka sendiri. Setelah mengubah kode menjadi "\ r \ n", bahkan Notepad menampilkan setiap entri pada barisnya sendiri.
sumber
Tidak
\n
apa-apa untuk semua kasus yang saya temui. Saya Anda bekerja dengan web, gunakan\n
dan jangan khawatir tentang hal itu (kecuali jika Anda memiliki masalah terkait baris baru).sumber
Anda dapat menggunakan
<br/>
dandocument.write/
,document.writeln
satu.sumber
<br>