我正在尝试拆分此字符串:

bar .foo car.coo

到这个数组:
['bar',' .foo','car','.coo']

我一直在尝试对这个词组进行变体,但似乎无法正确理解:
str.replace(/([.#:])/g, '$1').split(" ");

拆分的规则是-如果存在[.#:]则进行拆分-但是如果它们前面有空格(例如.foo),则包括空格

我怎么做?

最佳答案

由于必须将"car.coo"拆分为两个数组元素而不消耗任何字符,因此.split可能不是您想要的。

您可以使用str.match,它将形成一个由regexp解析的字符串组成的数组:

"bar .foo car.coo".match(/( [.#:]|[.#:])?[^.#: ]+/g);
// ["bar", " .foo", "car", ".coo"]

10-07 21:52