Cách đơn giản và an toàn nhất để tách một chuỗi bằng cách sử dụng các dòng mới, bất kể định dạng (CRLF, LFCR hoặc LF), là loại bỏ tất cả các ký tự xuống dòng và sau đó tách trên các ký tự dòng mới ."text".replace(/\r/g, "").split(/\n/);
Đảm bảo này là khi bạn có những dòng mới liên tục (ví dụ \r\n\r\n
, \n\r\n\r
hoặc \n\n
) kết quả sẽ luôn luôn giống nhau.
Trong trường hợp của bạn, mã sẽ giống như sau:
(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);
Dưới đây là một số ví dụ cho thấy tầm quan trọng của phương pháp này:
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"));
}