Javascript 中拆分字符串

Posted by cl9000 on April 04, 2021

创造性就是发明、实验、成长、冒险、犯规、犯错和享受乐趣。 ——<玛丽·卢·库克>

介绍

JavaScript 有很多有用的内置字符串操作方法,其中之一就是split()方法。

在本文中,我们将仔细研究 split() 方法以及如何将其与正则表达式结合使用以按照我们想要的方式拆分长字符串。

JavaScript 的split()方法

split(delimiter, limit)方法用于字符串时,它返回一个子字符串数组,并使用 delimiter 参数的值作为分隔符。delimiter参数还可以指定为正则表达式,然后将通过使用原始字符串搜索找到匹配指定表达式的分隔符。

此外,我们可以指定可选参数 limit,它指定我们想要的结果子字符串数组中有多少元素。limit=2 例如,设置将产生一个数组,其中包含原始字符串中由分隔符分隔的前两个子字符串:

1
2
3
4
5
6
const str = "JavaScript is the best programming language!";

const words = str.split(" ");
console.log(words);
// 这里,字符串将被分解为每个新单词:
// ["JavaScript", "is", "the", "best", "programming", "language!" ]

如果我们将分隔符设置为其他内容,例如:

1
2
3
4
const chars = str.split("");
console.log(chars);
// 字符串将在每个字符上分解:
// ["J", "a", "v", "a", "S", "c", "r", "i", "p", "t", " ", "i", "s", " ", "t", "h", "e", " ", "b", "e", "s", "t", " ", "p", "r", "o", "g", "r", "a", "m", "m", "i", "n", "g", " ", "l", "a", "n", "g", "u", "a", "g", "e", "!"]

使用 split() 方法的正则表达式

现在我们已经熟悉了 split() 方法的使用,让我们更上一层楼,并在组合中引入正则表达式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const paragraph = `The Answer to the Ultimate Question of Life, the Universe, and Everything is 42. Forty two. That's all there is.`;

// Split by words
const words = paragraph.split(" ");
console.log(words[2]);

// Split by sentences
const sentences = paragraph.split(/[!?.]/);
console.log(sentences[1]);

// Split all characters, with a limit of 2
const firstTwoChars = paragraph.split("", 2);
console.log(firstTwoChars);

// Split and reverse
const reverse = paragraph.split("").reverse().join("");
console.log(reverse);

结果 :

1
2
3
4
to
Forty two
["T", "h" ]
.24 si gnihtyrevE dna ,esrevinU eht ,efiL fo noitseuQ etamitlU eht ot rewsnA ehT

在第二个例子中,我们传递一个正则表达式作为 split() 方法的参数。

  • /[!?.]/ 代表一个字符集 - !?.

简而言之,我们在任何指定的字符处拆分字符串。

在第三个示例中,我们将 2 作为第二个参数传递,将结果子字符串数组限制为两个元素。

在最后一个示例中,我们使用内置 reverse()方法反转字符串。因为reverse()是数组方法,我们先将原始字符串拆分为单个字符的数组,通过使用该 split("")方法,然后再使用reverse()

最后,我们可以 join()将结果从字符数组中创建一个反向字符串。

总结

在本教程中,我们快速了解了如何在 vanilla JavaScript 中拆分字符串。我们已经讨论了内置 split() 方法,以及如何将它与正则表达式一起使用。

关注【公众号】,了解更多。



支付宝打赏 微信打赏

赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!