是否可以使用多个定界符制作一个正则表达式?例如,我想分割一个字符串,它可以有两种形式:1.“string1,string2,string3”或2.“string1,string2,string3”。我一直在尝试用javascript做到这一点,但到目前为止没有成功。

最佳答案

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

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

JS Fiddle demo

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

顺便说一句,如果逗号前面可能有空格,那么值得将split()正则表达式修改为:
var string = "part1,part2  , part3, part4,    part5",
    components = string.split(/\s*,\s*/);
console.log(components);​

JS Fiddle demo

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

引用:
  • Regular Expressions
  • string.split()
  • 关于javascript - 逗号的正则表达式,后跟空格或逗号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12368628/

    10-11 23:06
    查看更多