添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在 JavaScript 中按换行符拆分字符串

How to Split a String by Newline in JavaScript

要按换行符拆分字符串,请调用将 split() 以下正则表达式作为参数传递给它的方法 – /\r?\n/ split 方法将在每次出现换行符时拆分字符串并返回包含子字符串的数组。

索引.js
const str = 'first\nsecond\r\nthird'; const result = str.split(/\r?\n/); // 👇️ ['first', 'second', 'third'] console.log(result);

我们将正则表达式传递给
String.split

正斜杠/ /标记正则表达式的开始和结束。

例如,Windows\r\n用作行尾字符,而\n是 Unix 中的默认值。

问号?与前面的项目 (\r) 匹配 0 次或 1 次。换句话说,\r可能存在,也可能不存在。

如果您在阅读正则表达式时需要帮助,请将
来自 MDN的
正则表达式速查表添加为书签。

const str = 'first\nsecond\r\nthird\n'; const result = str.split(/\r?\n/).filter(element => element); // 👇️ ['first', 'second', 'third'] console.log(result);

我们传递给filter方法的函数被数组中的每个元素调用。

在每次迭代中,我们按原样返回元素。

JavaScript 中的假值是:false, null, undefined, 0, ""
(空字符串),
NaN(不是数字)。

空字符串是一个虚假值,因此它不会被添加到新数组中。

另一种更简洁的方法是将Boolean对象传递给filter方法。

索引.js
const str = 'first\nsecond\r\nthird\n'; const result = str.split(/\r?\n/).filter(element => element); // 👇️ ['first', 'second', 'third'] console.log(result);

Boolean对象从数组中获取每个元素,将其转换为布尔值并返回结果。

索引.js
console.log(Boolean('test')); // 👉️ true console.log(Boolean('')); // 👉️ false

空字符串是虚假值并被转换为false,因此它们不会被添加到新数组中。

您选择哪种方法是个人喜好的问题。我会明确返回数组元素,因为我发现这种Boolean方法过于含蓄和间接。