是否可以使用多个分隔符制作正则表达式?例如,我想要拆分一个字符串,该字符串可以有两种形式:1. "string1, string2, string3"或2. "string1,string2,string3"。我一直在尝试在JavaScript中实现这一点,但迄今为止没有成功。
是否可以使用多个分隔符制作正则表达式?例如,我想要拆分一个字符串,该字符串可以有两种形式:1. "string1, string2, string3"或2. "string1,string2,string3"。我一直在尝试在JavaScript中实现这一点,但迄今为止没有成功。
只需使用正则表达式的 split()
方法:
var string = "part1,part2, part3, part4, part5",
components = string.split(/,\s*/);
我使用*
而不是?
的原因很简单,它允许匹配没有空格或多个空格。而?
只匹配零个或一个空格(这正是您所要求的,但即便如此)。
顺便说一下,如果可能会有逗号之前的空格,则修改 split()
正则表达式可能值得考虑:
var string = "part1,part2 , part3, part4, part5",
components = string.split(/\s*,\s*/);
console.log(components);
该演示展示了在逗号前后使用零个或多个空格进行字符串拆分的方法。当然,这种做法未必是必要的。
参考资料:
string1, string2, string3, string4, string5
,而Silva的代码则不能处理它。 - Ωmega使用?
使空格(\s
)成为可选项:
var s = "string1,string2,string3";
s.split(/,\s?/);
除了Silva之外
以防你怀疑它可能有多个空格,那么使用(或没有空格)
var s = "string1, string2, string3";
s.split(/,\s*/);
,\s|,
怎么样?它只匹配一个空格。 - user235273