迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

从 JavaScript 中的字符串中删除/替换所有空格

作者:迹忆客 最近更新:2023/02/23 浏览次数:

使用 String.replace() 方法从字符串中删除所有空格,例如 str.replace(/\s/g, '')

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

const str = ' A   B   C    D ';

// ✅ 从字符串中删除所有空格(包括空格、制表符和换行符)
const noWhitespace = str.replace(/\s/g, '');
console.log(noWhitespace); // 👉️ 'ABCD'

// ✅ 仅删除字符串中的空格
const noSpaces = str.replace(/ /g, '');
console.log(noSpaces); // 👉️ 'ABCD'

如果需要替换字符串中的所有空格,请将替换字符串指定为 String.replace() 的第二个参数。

const str = 'www jiyik com';

const spacesRelaced = str.replace(/ /g, '+');
console.log(spacesRelaced); // 👉️ www+jiyik+com

javascript String.replace() 替换空格

代码示例将所有空白字符替换为加号 +

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

该方法采用以下参数:

  • pattern 要在字符串中查找的模式。 可以是字符串或正则表达式。
  • replacement 一个字符串,用于将匹配的子字符串替换为提供的模式。

我们传递给 replace() 方法的第一个参数是一个正则表达式。

const str = ' A   B   C    D ';

const noWhitespace = str.replace(/\s/g, '');
console.log(noWhitespace); // 👉️ 'ABCD'

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

\s 特殊字符匹配空格、制表符和换行符。

我们使用 g(全局)标志来指定我们要匹配字符串中出现的所有空白字符,而不仅仅是第一次出现的字符。

const str = ' A  \n B \t  C \n   D ';

const noWhitespace = str.replace(/\s/g, '');
console.log(noWhitespace); // 👉️ 'ABCD'

replace() 方法采用的第二个参数是替换字符串。

如果我们需要从字符串中删除所有空格,请指定一个空字符串作为替换。

相反,如果我们需要用不同的字符替换字符串中的空格,请将替换字符串作为第二个参数传递给 String.replace

const str = 'www jiyik com';

const spacesRelaced = str.replace(/ /g, '+');
console.log(spacesRelaced); // 👉️ www+jiyik+com

代码示例将所有空白字符替换为加号 +


仅从字符串中删除/替换空格

前面的代码示例从字符串中删除所有空白字符,包括空格、制表符和换行符。

如果只想从字符串中删除空格,请使用以下正则表达式。

const str = ' A   B   C    D ';

const noSpaces = str.replace(/ /g, '');
console.log(noSpaces); // 👉️ 'ABCD'

我们只在标记正则表达式开头和结尾的正斜杠之间指定了一个空格。

g(全局)标志用于删除字符串中出现的所有空格,而不仅仅是第一次出现的空格。

String.replace() 方法不会更改原始字符串,它会返回一个新字符串。 字符串在 JavaScript 中是不可变的。

或者,我们可以使用 replaceAll() 方法。

使用 replaceAll() 删除/替换字符串中的所有空格

使用 String.replaceAll() 方法从字符串中删除所有空格,例如 str.replaceAll(/\s/g, '')

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

const str = ' A   B   C    D ';

const noWhitespace = str.replaceAll(/\s/g, '');
console.log(noWhitespace); // 👉️ 'ABCD'

String.replaceAll() 方法返回一个新字符串,其中所有匹配的模式都被提供的替换项替换。

该方法采用以下参数:

  • pattern 要在字符串中查找的模式。 可以是字符串或正则表达式。
  • replacement 一个字符串,用于将匹配的子字符串替换为提供的模式。

仅使用 replaceAll() 替换/删除字符串中的空格

在此特定场景中,使用 replaceAll() 方法优于 String.replace 没有任何好处。

但是,如果我们只需要从字符串中删除空格(不包括制表符和换行符),则可以将字符串而不是正则表达式传递给 replaceAll() 方法。

const str = ' A   B   C    D ';

const noWhitespace = str.replaceAll(' ', '');
console.log(noWhitespace); // 👉️ 'ABCD'

我们没有将正则表达式传递给 replaceAll() 方法,而是传递了一个包含空格的字符串。

replaceAll() 方法通过用空字符串替换它们来删除所有空格。

**请注意**,此方法仅从字符串中删除空格(而不是制表符和换行符)。

如果我们还想删除制表符和换行符 \n ,请将正则表达式传递给该方法。

const str = ' A   B   C    D ';

const noWhitespace = str.replaceAll(/\s/g, '');
console.log(noWhitespace); // 👉️ 'ABCD'

如果需要替换字符串中的空格,请将替换字符串指定为 str.replaceAll() 的第二个参数。

const str = 'www jiyik com';

const spacesReplaced = str.replaceAll(' ', '^');

console.log(spacesReplaced); // 👉️ 'www^jiyik^com'

代码示例将字符串中的所有空格替换为插入符号 ^。

如果我们必须经常替换字符串中的空格,我们还可以创建一个可重用的函数。

function replaceAllSpaces(string, replacement) {
  return string.replaceAll(' ', replacement);
}

// 👇️ fql-jiyik
console.log(replaceAllSpaces('fql jiyik', '-'));

// 👇️ fql!jiyik!com
console.log(replaceAllSpaces('fql jiyik com', '!'));

我们定义了一个函数,它将一个字符串和一个替换项作为参数,并替换字符串中出现的所有空格。

或者,我们可以使用 String.split()Array.join() 方法删除/替换字符串中的空格。


使用 String.split() 删除/替换字符串中的所有空格

要从字符串中删除所有空格:

  • 使用 split() 方法在每次出现空格时将字符串拆分为数组。
  • 使用 join() 方法将数组连接成一个没有分隔符的字符串。
const str = 'fql jiyik com';

const withoutSpaces = str.split(' ').join('');
console.log(withoutSpaces); // 👉️ 'fqljiyikcom'

如果需要替换字符串中的所有空格,请在调用 Array.join() 时指定替换字符串。

const str = 'fql jiyik com';

const withoutSpaces = str.split(' ').join('^');
console.log(withoutSpaces); // 👉️ 'fql^jiyik^com'

我们使用 String.split() 方法在每个空格上拆分字符串。

const str = 'www jiyik com';

// 👇️ [ 'www', 'jiyik', 'com' ]
console.log(str.split(' '));

String.split() 方法接受一个分隔符,并在每次出现所提供的分隔符时将字符串拆分为一个数组。

String.split() 方法采用以下 2 个参数:

  • separator 描述每个拆分应该发生在哪里的模式。
  • limit 一个整数,用于指定要包含在数组中的子字符串数的限制。

最后一步是对所有带或不带分隔符的数组元素使用 Array.join() 方法。

如果省略了分隔符参数的值,则数组元素用逗号 , 连接。

如果分隔符参数设置为空字符串,则数组元素之间没有任何字符连接。

const str = 'www jiyik com';

const withoutSpaces = str.split(' ').join('');
console.log(withoutSpaces); // 👉️ 'wwwjiyikcom'

如果我们需要经常替换字符串中的空格,请定义一个可重用的函数。

function replaceAllSpaces(string, replacement) {
  return string.split(' ').join(replacement);
}

// 👇️ fql-jiyik
console.log(replaceAllSpaces('fql jiyik', '-'));

// 👇️ fql^jiyik
console.log(replaceAllSpaces('fql jiyik', '^'));

该函数将一个字符串和一个替换项作为参数,并替换字符串中出现的所有空格。

当我们将一个空字符串传递给 split() 方法时,我们只根据空格进行拆分(不是制表符或换行符)。

如果我们还需要在制表符和换行符上进行拆分,请将正则表达式传递给 String.split() 方法。

const str = 'www jiyik com';

const withoutSpaces = str.split(/\s/).join('');
console.log(withoutSpaces); // 👉️ 'wwwjiyikcom'

\s 特殊字符涵盖所有空白字符(空格、制表符和换行符)。


总结

选择哪种方法是个人喜好的问题。

如果我们只需删除/替换字符串中的空格(而不是所有空白字符),请使用 replaceAll 方法来避免使用正则表达式。

// ✅ 从字符串中删除所有空格
const str = 'www jiyik com';

const result = str.replaceAll(' ', '');
console.log(result); // 👉️ wwwjiyikcom

可以使用相同的方法替换字符串中的所有空格,我们只需指定一个替换字符串即可。

// ✅ 替换字符串中的所有空格
const str = 'www jiyik com';

const result = str.replaceAll(' ', '^');
console.log(result); // 👉️ www^jiyik^com

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便