Skip to main content

split()

语法

split(splitter: { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number): string[];

描述

根据splitter将字符串拆分成数组,splitter可以是字符串也可以是正则表达式;第二个参数用于限制返回的数组的长度。

  • 如果不传递参数,则返回的数组包含一个由整个字符串组成的元素

  • 如果第一个参数为空字符串,则按字符串中的每个字符分割

  • 第一个参数可以传递一个正则,如果正则没有捕获,返回的数组将不包含分割元素;否则捕获的结果将会包含在数组中

  • 第二个参数用于限制返回的数组的长度:

    • 当 limit大于等于返回数组的长度时,返回整个数组

    • 当 limit等于0时,返回一个空数组

    • 当 limit为负数时,返回整个数组

示例

const str = 'Més que un Club';

str.split(); // ['Més que un Club']
str.split(''); // ['M', 'é', 's', ' ', 'q', 'u', 'e', ' ', 'u', 'n', ' ', 'C', 'l', 'u', 'b']
str.split(' '); // ['Més', 'que', 'un', 'Club']

// 当正则不包含捕获时,返回的数组将排除捕获到的元素
str.split(/\s*un\s*/); // ['Més que', 'Club']

// 当正则包含捕获时,返回的数组将包含捕获到的元素
str.split(/(\s*un\s*)/); // ['Més que', ' un ', 'Club']

str.split(' ', 1); // ['Més']

// limit为0时恒返回空数组
str.split(' ', 0); // []

// limit为负数时视为 limit = length,将返回整个数组
str.split(' ', -1); // ['Més', 'que', 'un', 'Club']

str.split(' ', 20); // ['Més', 'que', 'un', 'Club']