Javascript 在包含数字和字母的字符串中拆分数字和字母

Javascript 在包含数字和字母的字符串中拆分数字和字母,javascript,regex,Javascript,Regex,我正在尝试拆分以下(或类似)字符串“08-27-2015 07:25:00AM”。 目前我使用 var parts = date.split(/[^0-9a-zA-Z]+/g); 导致 ["02", "27", "2012", "03", "25", "00AM"] 问题在于00AM部件。我也想把它分开。因此,完美的结果是: ["02", "27", "2012", "03", "25", "00", "AM"] 如果你在寻找字母或数字的序列,而不是两者混合的序列,你可以这样做 "08-2

我正在尝试拆分以下(或类似)字符串“08-27-2015 07:25:00AM”。 目前我使用

var parts = date.split(/[^0-9a-zA-Z]+/g);
导致

["02", "27", "2012", "03", "25", "00AM"]
问题在于
00AM
部件。我也想把它分开。因此,完美的结果是:

["02", "27", "2012", "03", "25", "00", "AM"]

如果你在寻找字母或数字的序列,而不是两者混合的序列,你可以这样做

"08-27-2015 07:25:00AM".match(/[a-zA-Z]+|[0-9]+/g)
导致

["08", "27", "2015", "07", "25", "00", "AM"]
|
的两侧,我们有一个由一个或多个字母组成的序列和一个或多个数字组成的序列。因此,当它遇到一个字母时,它将收集所有连续的字母,直到它到达一个非字母,在这一点上它收集所有连续的数字,依此类推


任何其他字符都不匹配,因此不会成为结果的一部分。

如果日期始终采用该格式,则可以使用:


var parts=date.match(/([0-9]{2})-(0-9]{2})-(0-9]{4})s([0-9]{2}):([0-9]{2}):([0-9]{2})(AM | PM)/)。拼接(1)
我将使用一个日期库来解析所需的字段。这样,您就可以处理多种格式,而不用担心使用正则表达式进行解析。虽然有点旧,但它在解析时表现良好。

输入的格式是否始终是该格式的日期?您对拆分或字符串的实际部分感兴趣吗?我确实用它来解析日期。塞吉奥,不知道你的意思。我想得到正确的部分,我试着通过拆分字符串来实现。这很完美,它甚至可以拆分“2015年6月2日”。谢谢虽然您可以编写一个通用拆分器,但您需要知道在生成的数组中会发生什么。因此,我不确定它在解析方面是否有任何有用的用途,也就是说,如果您不知道输入的格式,那么生成的数组将具有不同的大小,并且在不同的位置具有不同类型的元素。你怎么知道该怎么办?
["08", "27", "2015", "07", "25", "00", "AM"]