快速提示:如何在JavaScript中把一个字符串分割成子串
在本教程中,你将了解到将一个字符串分割成子串的不同方法,以及每种方法何时有用。
在JavaScript中,可以为不同的目的轻松地操作字符串--使用该语言中可用的本地方法。我们最近介绍了如何将数字转换为字符串,以及如何在JavaScript中将字符串转换为数字。
另一种操作字符串的方法是提取其中的部分内容用于其他用途。例如,你可能有一个完整的URL,但只想提取其中的哈希部分。或者你可能有一个用逗号分隔的项目列表,并想分别使用这些项目。
使用substring()将一个字符串分割成子串
JavaScript中的所有字符串都有一个substring() 方法。这个方法可以用来检索特定索引下的子串。
substring() 接受两个参数。第一个参数是必须的,它表示子串开始的索引。第二个是可选的,表示子串结束的索引。如果省略第二个参数,子串将从作为第一个参数提供的索引开始,一直到字符串的结尾。
需要注意的是,第一个参数是一个基于0的索引,这意味着第一个字符在索引0 ,第二个字符在索引1 ,以此类推。另外要注意的是,第二个参数是比你希望子串结束的索引大一个。例如,如果你想让字符串在索引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 ,以检索一个子串。该子串从索引10 开始,在索引13 结束。返回的值是bit 。请注意,substring() 返回的子串没有改变它所使用的变量的值。
检索索引
在大多数情况下,你在编写代码时不会知道子串的起始或结束指数。索引可能是基于其他输入或变量的。
在这些情况下,你可以使用indexOf() 方法。如果子串在一个字符串中出现,该方法将返回该子串的索引。如果该子串在字符串中不存在,它将返回-1 。
一旦你使用indexOf() 检索到索引,你就可以检索到子串了。
比如说:
const url = 'https://sitepoint.com#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() 将字符串分割成一个子串数组。