Cara 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:
(function ($) {
$(document).ready(function () {
$('#data').submit(function (e) {
var ks = $('#keywords').val().replace(/\r/g, "").split(/\n/);
e.preventDefault();
alert(ks[0]);
$.each(ks, function (k) {
alert(k);
});
});
});
})(jQuery);
Berikut beberapa contoh yang menunjukkan pentingnya metode ini:
var examples = ["Foo\r\nBar", "Foo\r\n\r\nBar", "Foo\n\r\n\rBar", "Foo\nBar\nFooBar"];
examples.forEach(function(example) {
output(`Example "${example}":`);
output(`Split using "\n": "${example.split("\n")}"`);
output(`Split using /\r?\n/: "${example.split(/\r?\n/)}"`);
output(`Split using /\r\n|\n|\r/: "${example.split(/\r\n|\n|\r/)}"`);
output(`Current method: ${example.replace(/\r/g, "").split("\n")}`);
output("________");
});
function output(txt) {
console.log(txt.replace(/\n/g, "\\n").replace(/\r/g, "\\r"));
}