Saya menggunakan jquery, dan saya memiliki textarea. Ketika saya mengirimkan dengan tombol saya, saya akan memberi tahu setiap teks yang dipisahkan oleh baris baru. Bagaimana cara membagi teks saya ketika ada baris baru?
var ks = $('#keywords').val().split("\n");
(function($){
$(document).ready(function(){
$('#data').submit(function(e){
e.preventDefault();
alert(ks[0]);
$.each(ks, function(k){
alert(k);
});
});
});
})(jQuery);
contoh masukan:
Hello
There
Hasil yang saya inginkan adalah:
alert(Hello); and
alert(There)
Anda harus mengurai baris baru apa pun platformnya (sistem operasi) Pemisahan ini bersifat universal dengan ekspresi reguler. Anda dapat mempertimbangkan untuk menggunakan ini:
Misalnya
sumber
Harus
Anda mengirimkan string literal ke perintah split, bukan regex.
sumber
"\n"
dan/\n/
dua hal yang SEPENUHNYA berbeda di JS."
= string,/
= regex."\n"
dan/\n/
cocokkan hal yang sama?Karena Anda sedang menggunakan
textarea
, Anda mungkin menemukan \ n atau \ r (atau \ r \ n) untuk jeda baris. Jadi, yang berikut ini disarankan:$('#keywords').val().split(/\r|\n/)
ref: periksa apakah string berisi jeda baris
sumber
/\r?\n/
... Saya pikir menggunakan|
(atau) akan menyisipkan hasil kosong untuk akhiran baris CRLF.\r
) di mana pun di web modern. Tempat terakhir di mana mereka banyak digunakan adalah di versi Mac OS kuno dari hampir 20 tahun yang lalu.Hanya
var ks = $('#keywords').val().split(/\r\n|\n|\r/);
akan bekerja dengan sempurna.
Pastikan
\r\n
ditempatkan di depan string RegExp , karena itu akan dicoba terlebih dahulu.sumber
g
akhir regex tidak diperlukanCara termudah dan teraman untuk memisahkan string menggunakan baris baru, apa pun formatnya (CRLF, LFCR, atau LF), adalah dengan menghapus semua karakter carriage return dan kemudian memisahkan karakter baris baru .
"text".replace(/\r/g, "").split(/\n/);
Memastikan bahwa ketika Anda memiliki baris baru terus menerus (yaitu
\r\n\r\n
,\n\r\n\r
, atau\n\n
) hasilnya akan selalu sama.Dalam kasus Anda, kodenya akan terlihat seperti:
Berikut beberapa contoh yang menunjukkan pentingnya metode ini:
sumber
var ks = $('#keywords').val().split("\n");
dalam penangan acaraalert(ks[k])
sebagai gantialert(k)
Demo
sumber
Javascript Good'ol:
sumber
Masalahnya adalah saat Anda menginisialisasi
ks
, filevalue
belum disetel.Anda perlu mengambil nilai saat pengguna mengirimkan formulir. Jadi, Anda perlu menginisialisasi di
ks
dalam fungsi callbacksumber
Berikut adalah contoh dengan
console.log
alih - alihalert()
. Lebih nyaman :)Anda bisa mencobanya di sini
sumber
sumber