推荐答案
// www.javascriptcn.com code example
const str = "apple,banana,orange";
// 1. 使用逗号分割字符串
const arr1 = str.split(",");
console.log(arr1); // 输出: ["apple", "banana", "orange"]
// 2. 使用空格分割字符串
const str2 = "apple banana orange";
const arr2 = str2.split(" ");
console.log(arr2); // 输出: ["apple", "banana", "orange"]
// 3. 使用空字符串分割字符串,得到字符数组
const str3 = "abc";
const arr3 = str3.split("");
console.log(arr3); // 输出: ["a", "b", "c"]
// 4. 使用limit参数限制返回数组的长度
const str4 = "apple,banana,orange,grape";
const arr4 = str4.split(",", 2);
console.log(arr4); // 输出: ["apple", "banana"]
// 5. 分割结果包含分隔符
const str5 = "apple,banana,orange";
const arr5 = str5.split(/,/);
console.log(arr5) // 输出: ["apple", "banana", "orange"]
const str6 = "apple1banana2orange3";
const arr6 = str6.split(/\d/);
console.log(arr6) // 输出:["apple", "banana", "orange", ""]本题详细解读
String.prototype.split() 方法是 JavaScript 中用于分割字符串的强大工具。它接受两个可选参数:
separator (分隔符): 指定在哪里分割字符串。它可以是:
- 一个字符串:例如 ",", " ", "---"。
- 一个正则表达式:例如
/,/,/\d/,/[,| ]/。 - 如果省略或者传入
undefined,则返回包含原字符串的数组。
limit (限制): 一个可选的整数,限制返回数组的元素个数。 如果设置,则返回的数组包含不超过 limit 个元素,剩余的字符串将不被分割。
工作原理:
split() 方法会在字符串中寻找 separator,找到后,将字符串分割成多个子字符串,这些子字符串被放入一个数组中返回。
关键点:
- 不修改原字符串:
split()方法不会修改原字符串,而是返回一个新的数组。 - 空字符串作为分隔符: 如果
separator是空字符串"",则字符串会被分割成单个字符的数组。 - 正则表达式分隔符: 使用正则表达式作为
separator可以实现更复杂的分割逻辑,例如使用多种分隔符或者处理不规则的格式。 limit参数:limit参数可以用来控制分割的次数,从而获得前几个分割后的子字符串。- 分割符被移除: 返回的数组中不包含分割符,除非在正则表达式中用捕获括号捕获。
- 没有找到分隔符: 如果没有找到分隔符,则会返回包含原字符串的数组
示例解析:
- 示例 1: 使用逗号
,作为分隔符,将字符串分割成包含apple,banana,orange的数组。 - 示例 2: 使用空格
作为分隔符, 将字符串分割成包含apple,banana,orange的数组。 - 示例 3: 使用空字符串
""作为分隔符,将字符串分割成单个字符的数组["a", "b", "c"]。 - 示例 4: 使用逗号
,作为分隔符,并且使用limit参数限制返回数组的长度为 2,结果返回["apple", "banana"]。 - 示例 5: 使用正则表达式
/,/作为分隔符, 将字符串分割成包含apple,banana,orange的数组。 - 示例 6: 使用正则表达式
/\d/作为分隔符, 将字符串分割成不包含数字的数组, 注意分割符是被移除的。