gpt4 book ai didi

javascript - 使用带有正则表达式的 split 方法后数组中的空字符串

转载 作者:行者123 更新时间:2023-12-02 17:32:59 24 4
gpt4 key购买 nike

我正在阅读Web 开发人员的专业 JavaScript 的第 5 章,并发现了这个涉及 split 方法和正则表达式的示例。我的困惑源于变量 color3 的输出。为什么数组的逗号前后包含空字符串?

var colorText = “red,blue,green,yellow”;
var colors1 = colorText.split(“,”); //[“red”, “blue”, “green”, “yellow”]
var colors2 = colorText.split(“,”, 2); //[“red”, “blue”]
var colors3 = colorText.split(/[^\,]+/); //[“”, “,”, “,”, “,”, “”]

最佳答案

在最后一种情况下,您将分隔符定义为“任何不是逗号的字符”。

因为第一个“分隔符”(“红色”)之前没有任何内容,最后一个“分隔符”(“黄色”)之后也没有任何内容。 Split 假定第一个分隔符前面有一个值,最后一个分隔符后面有一个值 - 正如它们在第一个和第二个示例中以及在任何正常情况下(例如CSV 文件中的行。唯一的准异常(exception)是 CSV 行中的第一个(或最后一个)值是空字符串;在这种情况下,如果有一个空字符串后跟一个分隔符,您会看到什么?

您会在行的开头看到一个看似孤立的分隔符(或在末尾看到一个分隔符)。它必须是这样的,因为你必须支持空值。

如果在“red”前面加上逗号,您将在第一个数组中看到一个初始空字符串,并在最后一个数组中看到一个初始逗号。

我认为您的最后一个正则表达式将“分隔符”重新定义为一组通常被视为数据的字符,并将“数据”重新定义为通常定义为分隔符的字符,这一事实让您感到困惑。

接受随意性。让它流经你。它们不是逗号和字母,而是零和一。

关于javascript - 使用带有正则表达式的 split 方法后数组中的空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22888516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com