目录
Remove the first N characters from a String in JavaScript
从字符串中删除前 N 个字符String.slice()
要从字符串中删除前 N 个字符,请调用该slice()
方法,将 N 作为参数传递给它。
例如,const removeFirst2 = str.slice(2);
从字符串中删除前 2 个字符。
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()
方法时,切片会到达字符串的末尾。
0
,最后一个字符的索引为。 str.length - 1
例如,要从字符串中删除前 2 个字符,您可以指定起始索引为2
.
const str = 'bobbyhadz.com'; const removeFirst2 = str.slice(2); console.log(removeFirst2); // 👉️ bbyhadz.com
起始索引2
从结果中排除前 2 个字符,因为新切片跳过索引0
和处的字符1
。
同样,要从字符串中删除第一个字符,请使用起始索引
3
.
const str = 'bobbyhadz.com'; const removeFirst3 = str.slice(3); console.log(removeFirst3); // 👉️ byhadz.com
新切片不包含原始字符串的前 3 个字符(索引0
,1
和2
)。
请注意,该String.slice()
方法不会更改原始字符串,它会返回一个新字符串。字符串在 JavaScript 中是不可变的。
const str = 'bobbyhadz.com'; const removeFirst2 = str.slice(2); console.log(removeFirst2); // 👉️ bbyhadz.com console.log(str); // 👉️ bobbyhadz.com
调用后原始字符串保持不变slice()
。
如果您尝试删除的字符多于字符串中的字符数,该slice()
方法将返回一个空字符串。
const str = 'bobbyhadz.com'; const removeFirst100 = str.slice(100); console.log(removeFirst100); // 👉️ ""
我们试图从仅包含 13 个字符的字符串中删除前 100 个字符,因此该slice()
方法返回了一个空字符串。
如果您必须经常这样做,请定义一个可重用的函数。
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()
方法。
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()
方法返回一个空字符串。
const str = 'bobby'; console.log(str.substring(3, 0)); // 👉️ bob console.log(str.slice(3, 0)); // 👉️ ''
- 如果传递给的两个参数中的任何一个都
substring()
为负数,则将它们视为0
.
const str = 'bobby'; console.log(str.substring(-3)); // 👉️ bobby console.log(str.slice(-3)); // 👉️ bby
当给定一个负索引时,该slice()
方法从字符串的末尾向后计数以找到索引。
该slice()
方法实现起来更直观,应该是你的方法。
有条件地从字符串中删除前 N 个字符
使用该String.replace()
方法有条件地从字符串中删除前 N 个字符。
如果字符串以指定字符开头,则该方法将仅删除字符串中的前 N 个字符。
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()
是一个正则表达式。
正斜杠标记/ /
正则表达式的开始和结束。
const str = 'bobbyhadz.com'; const removeFirst2 = str.replace(/^bo/, ''); console.log(removeFirst2); // 👉️ bbyhadz.com
插入符^
匹配输入的开头。
bo
我们在示例中指定了字符。
换句话说,bo
只有在字符串开头的字符才会匹配。
我们用空字符串替换匹配项以删除字符。
如果字符串不是以指定字符开头,则整个字符串按原样返回。
const str = 'bobbyhadz.com'; const result = str.replace(/^xyz/, ''); console.log(result); // 👉️ bobbyhadz.com
该String.replace()
方法返回一个新字符串,其中替换了模式的匹配项。该方法不会更改原始字符串。
字符串在 JavaScript 中是不可变的。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: