如何从 JavaScript 中的字符串中删除所有换行符

目录

How to Remove all Line Breaks from a String in JavaScript

  1. 从 JavaScript 中的字符串中删除所有换行符
  2. 在 JavaScript 中删除字符串开头和结尾的换行符
  3. 删除所有换行符并将多个空格替换为单个空格
  4. 使用正则表达式从字符串的开头和结尾删除换行符

在 JavaScript 中删除字符串中的所有换行符

使用该String.replace()方法删除字符串中的所有换行符,例如str.replace(/[\r\n]/gm, '');.

replace()方法将通过用空字符串替换它们来删除字符串中的所有换行符。

索引.js
const str = 'a\n multi \n line \r string \n!'; // ✅ Remove all line breaks from string const withoutLineBreaks = str.replace(/[\r\n]/gm, ''); console.log(withoutLineBreaks); // 👉️ a multi line string ! // ----------------------------------------------------- // ✅ Remove only line breaks from the start and end of the string const str2 = '\nbobby hadz\n'; const result = str2.trim(); console.dir(result); // 👉️ 'bobby hadz'

String.replace
()
方法返回一个新字符串,其中一个、一些或所有正则表达式的匹配项被替换为提供的替换项。

该方法采用以下参数:

姓名 描述
图案 要在字符串中查找的模式。可以是字符串或正则表达式。
替代品 用于通过提供的模式替换子字符串匹配的字符串。

我们向该String.replace()方法传递了一个正则表达式。

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

让我们首先介绍正则表达式末尾的g和标志。m

g (全局)标志用于指定我们要匹配正则表达式的所有出现,而不仅仅是第一次出现。

索引.js
const str = 'a\n multi \n line \r string \n!'; const withoutLineBreaks = str.replace(/[\r\n]/gm, ''); console.log(withoutLineBreaks); // 👉️ a multi line string !

m (multiline)标志用于指定我们要匹配多行的匹配项。

方括号[]称为字符类,用于匹配括号之间的任一字符。

我们想要替换两者\r\n因为换行符因操作系统而异。

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

我们传递给该方法的第二个参数String.replace()是每个匹配项的替换。

索引.js
const str = 'a\n multi \n line \r string \n!'; const withoutLineBreaks = str.replace(/[\r\n]/gm, ''); console.log(withoutLineBreaks); // 👉️ a multi line string !

出于我们的目的,我们用空字符串替换每次出现的换行符以删除换行符。

String.replace()方法返回一个新字符串,其中替换了模式的匹配项。该方法不会更改原始字符串。

字符串在 JavaScript 中是不可变的。

在 JavaScript 中删除字符串开头和结尾的换行符

如果您的字符串只有前导和尾随新行,您也可以使用该
String.trim()方法。

索引.js
const str = '\n\r\na multi line string!\n\r\n'; const result = str.trim(); console.log(result); // 👉️ a multi line string!

String.trim ()方法从包含换行符的字符串中删除前导和尾随空格。

请注意,该String.trim()方法不会删除字符串中间的换行符。

索引.js
const str = '\n\r\na multi \nline string!\n\r\n'; // a multi // line string! const result = str.trim(); console.log(result);

String.trim()方法删除了前导和尾随的换行符,但没有删除字符串中间的换行符。

去掉所有的换行符,用一个空格替换多个空格

如果您需要删除字符串中的所有换行符并将多个空格替换为单个空格,请使用以下正则表达式。

索引.js
const str = 'a\n multi \n line \r string'; const result = str.replace(/\s+/g, ' ').trim(); console.dir(result); // 👉️ 'a multi line string'

我们\s在正则表达式中使用了字符。特殊字符匹配空格、制表符和换行符。

加号+与前面的项目(空白字符和换行符 ( \n) 字符)匹配 1 次或多次。

g (全局)标志用于指定我们要匹配正则表达式的所有出现,而不仅仅是第一次出现。

就其整体而言,正则表达式用一个空格替换一个或多个空格和换行符。

最后一步是使用该String.trim()方法删除任何前导和尾随空格。

使用正则表达式从字符串的开头和结尾删除换行符

这是一个三步过程:

  1. replace()使用以下正则表达式
    调用该方法 –
    /^\s+|\s+$/g
  2. 正则表达式匹配任何前导或尾随的新行。
  3. 提供一个空字符串作为每个匹配项的替换。
索引.js
const str = '\none two\n'; const result = str.replace(/^\s+|\s+$/g, ''); console.log(result); // 👉️ "one two"

String.replace
()
方法返回一个新字符串,其中一个、一些或所有正则表达式的匹配项被替换为提供的替换项。

该方法采用以下参数:

姓名 描述
图案 要在字符串中查找的模式。可以是字符串或正则表达式。
替代品 用于通过提供的模式替换子字符串匹配的字符串。

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

The caret ^ and dollar sign $ match the beginning and end of the input.

index.js
const str = '\none two\n'; const result = str.replace(/^\s+|\s+$/g, ''); console.log(result); // 👉️ "one two"

The \s special character matches any spaces, tabs or newlines.

The plus + matches the preceding item (the space/tab/newline) one or more
times.

The pipe | means “or”. In other words, we match any spaces, tabs, or newlines at the beginning or end of the string and replace them with an empty string to remove them.

If you ever need help reading a regular expression, check out this
regular expression cheatsheet
by MDN.

It contains a table with the name and the meaning of each special character with
examples.

# Additional Resources

You can learn more about the related topics by checking out the following
tutorials: