为什么split函数无法获得第一个null



有一个带有javascript:的拆分函数

"ff4400".split(/(?=((?:..)+$))/)

而我认为结果将是:

["", "ff4400", "ff", "4400", "44", "00", "00"]

但它不是:

["ff", "4400", "44", "00", "00"]

正如你所看到的,事实上,分隔符是"4400","00",但我认为应该是"ff4400","4400","00"。ps:捕获的元素将在数组中。

您确实感到困惑,因为这就是只基于正则表达式的结果。然而,String.prototype.split引入了一些自己的怪癖:

separator的值可以是空字符串、空正则表达式表达式,或者可以匹配空字符串的正则表达式In在这种情况下,分隔符与输入字符串的开头或结尾,也不匹配空上一个分隔符匹配末尾的子字符串。

这里使用的正则表达式将只匹配空字符串,因此与字符串开头对应的匹配将被丢弃,并且它将在结果中产生的元素("""ff4400")将丢失。

最新更新