regex表示逗号,后跟空格或仅逗号

regex for comma followed by space or just comma

本文关键字:空格 表示 regex      更新时间:2023-09-26

是否可以制作一个带有多个分隔符的正则表达式?例如,我想拆分一个字符串,它可以有两种形式:1。"字符串1、字符串2、字符串3"或2。"字符串1,字符串2,字符串3"。我一直在尝试用javascript实现这一点,但到目前为止没有成功。

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

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

JS Fiddle演示。

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

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

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

JS Fiddle演示。

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

参考文献:

  • 正则表达式
  • string.split()

是的,使用?:使空白('s)可选

var s = "string1,string2,string3";
s.split(/,'s?/);

除了silva

以防你怀疑它可以有多个空间,然后使用(或没有空间)

var s = "string1, string2,  string3";
s.split(/,'s*/);