如何在 JavaScript 中将字符串拆分为子字符串

86 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第24天,点击查看活动详情

在本教程中,你将了解将字符串拆分为子字符串的不同方法,以及每种方法何时有用。

字符串可以很容易地在 JavaScript 中为不同的目的进行操作——使用该语言中可用的本机方法。我们最近介绍了如何将数字转换为字符串以及如何在 JavaScript 中将字符串转换为数字。

可以操作字符串的另一种方法是提取其中的一部分以用于其他用途。例如,您可能有一个完整的 URL,但只想提取哈希部分。或者,您可能有一个用逗号分隔的项目列表,并希望单独使用这些项目中的每一个。

使用 substring() 将字符串拆分为子字符串

JavaScript 中的所有字符串都有一个substring()方法。此方法可用于检索特定索引处的子字符串。

substring()接受两个参数。第一个是必需的,并指示子字符串开始的索引。第二个是可选的,指示子字符串结束的索引。如果省略第二个参数,则子字符串将从作为第一个参数提供的索引处开始,并一直持续到字符串的末尾。

需要注意的是,第一个参数是从 0 开始的索引,这意味着第一个字符在 index 处0,第二个在 index 处1,依此类推。另一个需要注意的重要事情是,第二个参数比您希望子字符串结束的索引大一。例如,如果您希望字符串以 index 结尾12,则提供13第二个参数。

例如:

const a = 'Bytes and bits';
const b = a.substring(10, 13);
console.log(b); // "bit"
console.log(a); // "Bytes and bits"

在此示例中,用于检索子字符串substring()的变量。a子字符串从 index 开始并在 index10结束13。返回值为bit。请注意,它substring()返回子字符串而不改变它所使用的变量的值。

检索索引

在大多数情况下,您在编写代码时不会知道子字符串的开始或结束索引。该指数可以基于其他输入或变量。

在这些情况下,您可以使用该indexOf()方法。此方法返回字符串中子字符串的索引(如果它出现在其中)。如果字符串中不存在子字符串,则返回-1.

使用 检索索引indexOf()后,您可以检索子字符串。

例如:

const url = 'https://juejin.cn/editor/drafts/#chapter_1';
const hash = url.indexOf('#');
if (hash !== -1) {
  console.log(url.substring(hash)); // "#chapter_1"
}

在此示例中,您检索#变量中的哈希字符的索引url。如果索引的值不是,则从哈希的索引开始-1检索子字符串。url

使用 split() 将字符串拆分为子字符串

从字符串中检索子字符串的另一种有用方法是split()方法。如果您的字符串是由分隔符分隔的项目列表,您可以使用该split()方法将字符串拆分为基于分隔符的子字符串数组。

split()接受两个可选参数。第一个参数是用于确定如何拆分字符串的分隔符。如果没有提供,则返回一个数组,其中一项是整个字符串。

第二个参数是一个数字,用于限制数组中返回的子字符串的数量。如果提供,则在分隔符上拆分字符串,直到达到限制,并且字符串中的其余文本将从数组中省略。

例如:

const str = 'Toyota,Nissan,Mercedes,Tesla';
const cars = str.split(',');
console.log(cars); // ["Toyota", "Nissan", "Mercedes", "Tesla"]

在此示例中,split()用于包含由,分隔符分隔的汽车品牌名称列表的字符串。返回的数组包含每个汽车品牌名称作为数组中的一项。

请注意,它split()返回子字符串数组而不影响使用它的字符串的值。

结论

在本教程中,您学习了如何使用方法substring()split().

substring()当您想从特定索引处的字符串中检索单个子字符串时很有用。您可以使用它indexOf()来检索子字符串的开始或结束索引。

split()另一方面,当您有一个包含由分隔符(例如逗号)分隔的项目列表的字符串时,它很有用。然后,您可以使用 将字符串拆分为子字符串数组split()