간단하고 안전한 방법은 형식에 관계없이 (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"));
}