8

是否可以使用多个分隔符制作正则表达式?例如,我想拆分一个可以有两种形式的字符串:1.“string1,string2,string3”或 2.“string1,string2,string3”。我一直在尝试在 javascript 中执行此操作,但到目前为止没有成功。

4

3 回答 3

26

只需使用正则表达式split()

var string = "part1,part2, part3, part4,    part5",
    components = string.split(/,\s*/);

JS 小提琴演示

我使用*而不是?仅仅因为它不允许空白或许多空白。而?匹配零个或一个空格(这正是您所要求的,但即便如此)。

顺便说一句,如果逗号之前可能有空格,那么可能值得将split()正则表达式修改为:

var string = "part1,part2  , part3, part4,    part5",
    components = string.split(/\s*,\s*/);
console.log(components);​

JS 小提琴演示

它将提供的字符串拆分为零个或多个空格,后跟一个逗号,后跟零个或多个空格。当然,这可能完全没有必要。

参考:

于 2012-09-11T11:26:37.237 回答
5

是的,使用以下命令将空格 ( \s) 设为可选?

var s = "string1,string2,string3";
s.split(/,\s?/);
于 2012-09-11T11:26:08.473 回答
1

除了席尔瓦

以防万一您怀疑它可以有多个空间然后使用(或没有空间)

var s = "string1, string2,  string3";
s.split(/,\s*/);
于 2012-09-11T11:29:42.907 回答