在 JavaScript 中确定文本中使用的换行符类型的最有效(足够快速和可靠)的方法是什么 - Unix 与 Windows。
在我的 Node 应用程序中,我必须读取大型 utf-8 文本文件,然后根据它们是使用 Unix 还是 Windows 换行符来处理它们。
当不确定换行符的类型时,我想根据最有可能的换行符来得出结论。
更新
根据我自己在下面的回答,code I ended up using .
最佳答案
谢谢@Sam-Graham .我试图产生一种优化的方式。此外,该函数的输出可直接使用(参见下面的示例):
function getLineBreakChar(string) {
const indexOfLF = string.indexOf('\n', 1) // No need to check first-character
if (indexOfLF === -1) {
if (string.indexOf('\r') !== -1) return '\r'
return '\n'
}
if (string[indexOfLF - 1] === '\r') return '\r\n'
return '\n'
}
注意 1:假定 string
是健康的(仅包含一种类型的换行符)。
注意 2:假设您希望 LF
为默认编码(当未找到换行符时)。
使用示例:
fs.writeFileSync(filePath,
string.substring(0, a) +
getLineBreakChar(string) +
string.substring(b)
);
这个实用程序也可能有用:
const getLineBreakName = (lineBreakChar) =>
lineBreakChar === '\n' ? 'LF' : lineBreakChar === '\r' ? 'CR' : 'CRLF'
关于javascript - 检测换行类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34820267/