วิธีที่ง่ายที่สุดและปลอดภัยที่สุดในการแยกสตริงโดยใช้บรรทัดใหม่โดยไม่คำนึงถึงรูปแบบ (CRLF, LFCR หรือ LF) คือการเอาตัวละครที่กลับรถและจากนั้นก็แยกบนตัวอักษรบรรทัดใหม่"text".replace(/\r/g, "").split(/\n/);
เพื่อให้แน่ใจว่าเมื่อคุณมีสายใหม่อย่างต่อเนื่อง (เช่น\r\n\r\n
, \n\r\n\r
หรือ\n\n
) ผลที่ได้จะเป็นแบบเดียวกัน
ในกรณีของคุณรหัสจะมีลักษณะดังนี้:
(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)
นี่คือตัวอย่างบางส่วนที่แสดงความสำคัญของวิธีนี้:
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"));
}