Câu trả lời được cung cấp bởi PointedEars là tất cả mọi thứ chúng ta cần. Nhưng bằng cách làm theo câu trả lời của Mathias Bynens, tôi đã thực hiện một chuyến đi trên Wikipedia và tìm thấy điều này: https://en.wikipedia.org/wiki/Newline .
Sau đây là chức năng thả xuống thực hiện mọi thứ mà trang Wiki ở trên xem xét "dòng mới" tại thời điểm trả lời này.
Nếu một cái gì đó không phù hợp với trường hợp của bạn, chỉ cần loại bỏ nó. Ngoài ra, nếu bạn đang tìm kiếm hiệu suất thì điều này có thể không phải là nó, nhưng đối với một công cụ nhanh chóng thực hiện công việc trong mọi trường hợp, điều này sẽ hữu ích.
// replaces all "new line" characters contained in `someString` with the given `replacementString`
const replaceNewLineChars = ((someString, replacementString = ``) => { // defaults to just removing
const LF = `\u{000a}`; // Line Feed (\n)
const VT = `\u{000b}`; // Vertical Tab
const FF = `\u{000c}`; // Form Feed
const CR = `\u{000d}`; // Carriage Return (\r)
const CRLF = `${CR}${LF}`; // (\r\n)
const NEL = `\u{0085}`; // Next Line
const LS = `\u{2028}`; // Line Separator
const PS = `\u{2029}`; // Paragraph Separator
const lineTerminators = [LF, VT, FF, CR, CRLF, NEL, LS, PS]; // all Unicode `lineTerminators`
let finalString = someString.normalize(`NFD`); // better safe than sorry? Or is it?
for (let lineTerminator of lineTerminators) {
if (finalString.includes(lineTerminator)) { // check if the string contains the current `lineTerminator`
let regex = new RegExp(lineTerminator.normalize(`NFD`), `gu`); // create the `regex` for the current `lineTerminator`
finalString = finalString.replace(regex, replacementString); // perform the replacement
};
};
return finalString.normalize(`NFC`); // return the `finalString` (without any Unicode `lineTerminators`)
});