从 JavaScript 中的字符串中删除前 N 个字符

目录

Remove the first N characters from a String in JavaScript

  1. 使用以下方法从字符串中删除前 N 个字符String.slice()
  2. 使用以下方法从字符串中删除前 N 个字符String.substring()
  3. 有条件地从字符串中删除前 N 个字符

从字符串中删除前 N 个字符String.slice()

要从字符串中删除前 N 个字符,请调用该slice()方法,将 N 作为参数传递给它。

例如,const removeFirst2 = str.slice(2);从字符串中删除前 2 个字符。

索引.js
const str = 'bobbyhadz.com'; // ✅ remove the first 2 characters from a string const removeFirst2 = str.slice(2); console.log(removeFirst2); // 👉️ bbyhadz.com // ✅ remove the first 3 characters from a string const removeFirst3 = str.slice(3); console.log(removeFirst3); // 👉️ byhadz.com

String.slice方法提取字符串一部分并将其返回,而不修改原始字符串。

String.slice()方法采用以下参数:

姓名 描述
起始索引 要包含在返回的子字符串中的第一个字符的索引
结束索引 要从返回的子字符串中排除的第一个字符的索引

当只有一个参数传递给该String.slice()方法时,切片会到达字符串的末尾。

JavaScript 索引是从零开始的,因此字符串中的第一个字符的索引为0,最后一个字符的索引为 str.length - 1

例如,要从字符串中删除前 2 个字符,您可以指定起始索引为2.

索引.js
const str = 'bobbyhadz.com'; const removeFirst2 = str.slice(2); console.log(removeFirst2); // 👉️ bbyhadz.com

起始索引2从结果中排除前 2 个字符,因为新切片跳过索引0和处的字符1

同样,要从字符串中删除第一个字符,请使用起始索引
3.

索引.js
const str = 'bobbyhadz.com'; const removeFirst3 = str.slice(3); console.log(removeFirst3); // 👉️ byhadz.com

新切片不包含原始字符串的前 3 个字符(索引0,12)。

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

索引.js
const str = 'bobbyhadz.com'; const removeFirst2 = str.slice(2); console.log(removeFirst2); // 👉️ bbyhadz.com console.log(str); // 👉️ bobbyhadz.com

调用后原始字符串保持不变slice()

如果您尝试删除的字符多于字符串中的字符数,该slice()
方法将返回一个空字符串。

索引.js
const str = 'bobbyhadz.com'; const removeFirst100 = str.slice(100); console.log(removeFirst100); // 👉️ ""

我们试图从仅包含 13 个字符的字符串中删除前 100 个字符,因此该slice()方法返回了一个空字符串。

如果您必须经常这样做,请定义一个可重用的函数。

索引.js
function removeFirstN(str, n) { return str.slice(n); } const str = 'bobbyhadz.com'; console.log(removeFirstN(str, 2)); // 👉️ bbyhadz.com console.log(removeFirstN(str, 3)); // 👉️ byhadz.com

removeFirstN函数以字符串 和n作为参数,并从字符串中删除前 N 个字符。

从字符串中删除前 N 个字符String.substring()

或者,您可以使用该String.substring()方法。

索引.js
const str = 'bobbyhadz.com'; const removeFirst2 = str.substring(2); console.log(removeFirst2); // 👉️ bbyhadz.com const removeFirst3 = str.substring(3); console.log(removeFirst3); // 👉️ byhadz.com

String.substring
()
方法返回从开始索引到排除结束索引的字符串片段。

该方法采用以下参数:

姓名 描述
起始索引 要包含在返回的子字符串中的第一个字符的索引
结束索引 要从返回的子字符串中排除的第一个字符的索引

如果未end指定索引,则切片将转到字符串的末尾。

我们以类似的方式使用slice()substring()方法从字符串中删除前 N 个字符。

但是,和方法
之间
存在一些
差异String.substring()String.slice()

  • substring()如果开始索引大于结束索引,则该方法交换其开始索引和结束索引。在这种情况下,该slice()方法返回一个空字符串。
索引.js
const str = 'bobby'; console.log(str.substring(3, 0)); // 👉️ bob console.log(str.slice(3, 0)); // 👉️ ''
  • 如果传递给的两个参数中的任何一个都substring()为负数,则将它们视为0.
索引.js
const str = 'bobby'; console.log(str.substring(-3)); // 👉️ bobby console.log(str.slice(-3)); // 👉️ bby

当给定一个负索引时,该slice()方法从字符串的末尾向后计数以找到索引。

slice()方法实现起来更直观,应该是你的方法。

有条件地从字符串中删除前 N 个字符

使用该String.replace()方法有条件地从字符串中删除前 N 个字符。

如果字符串以指定字符开头,则该方法将仅删除字符串中的前 N ​​个字符。

索引.js
const str = 'bobbyhadz.com'; // ✅ remove the first 2 characters from a string conditionally const removeFirst2 = str.replace(/^bo/, ''); console.log(removeFirst2); // 👉️ bbyhadz.com // ✅ remove the first 3 characters from a string conditionally const removeFirst3 = str.replace(/^bob/, ''); console.log(removeFirst3); // 👉️ byhadz.com

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

该方法采用以下参数:

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

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

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

索引.js
const str = 'bobbyhadz.com'; const removeFirst2 = str.replace(/^bo/, ''); console.log(removeFirst2); // 👉️ bbyhadz.com

插入符^匹配输入的开头。

bo我们在示例中指定了字符。

换句话说,bo只有在字符串开头的字符才会匹配。

我们用空字符串替换匹配项以删除字符。

当您只想从字符串中删除以指定字符开头的前 N ​​个字符时,此方法很有用。

如果字符串不是以指定字符开头,则整个字符串按原样返回。

索引.js
const str = 'bobbyhadz.com'; const result = str.replace(/^xyz/, ''); console.log(result); // 👉️ bobbyhadz.com

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

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

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: