Javascript 用空格或逗号分隔的多个字的正则表达式

Javascript 用空格或逗号分隔的多个字的正则表达式,javascript,regex,Javascript,Regex,我正在尝试为多个用逗号或空格分隔的字符串创建正则表达式 Lorem Ipsum // valid Lorem, Ipsum //valid Lorem, Ipsum, Ipsum, Ipsum // multiple valid Lorem // invalid without space/comma 以下是我到目前为止的情况: ^\w+(,\s*\w+){3}$/ 假设您希望匹配整个短语: ^(\w+(,|\s)\s*)+\w+$ 应该可以做到这一点。试试这个正则表达式: ^(\w+[,

我正在尝试为多个用逗号或空格分隔的字符串创建正则表达式

Lorem Ipsum // valid
Lorem, Ipsum //valid
Lorem, Ipsum, Ipsum, Ipsum // multiple valid
Lorem // invalid without space/comma
以下是我到目前为止的情况:

^\w+(,\s*\w+){3}$/

假设您希望匹配整个短语:

^(\w+(,|\s)\s*)+\w+$
应该可以做到这一点。

试试这个正则表达式:

^(\w+[, ]+)*\w+$
你可以用

^\w+(?:(?:,\s\w+)+|(?:\s\w+)+)$

正则表达式匹配:

  • ^
    -字符串的开头
  • \w+
    -1+字字符
  • (?:
    -替代组的开始:
    • (?:,\s\w+)+
      -
      ,空格,1+字字符
    • |
      -或
    • (?:\s\w+)+
      -空格和1+字字符
  • -组结束
  • $
    -字符串结束
您可以使用前瞻和捕获组缩短模式:

^\w+(?=(,?\s))(?:\1\w+)+$
看。这里的区别是
(?=(,?\s))(?:\1\w+)+

  • (?=(,?\s))
    -一个正向前瞻,检查当前位置右侧是否有可选的
    ,然后立即有一个空格,并将该序列捕获到组1中
  • (?:\1\w+)+
    -1个或多个序列:
    • \1
      -组1中捕获的相同文本
    • \w+
      -1+字字符

请参阅。

由于上述所有方法都不适用于我,因此我提出了以下建议:

/([^,\s]+)/g

所以它们必须有一个空格,但也可以有一个逗号?或者逗号分隔的值(没有空格)是否也有效,例如
Lorem、Ipsum
?另外,
Lorem、Ipsum
是否有效?请注意,
Lorem,Ipsum
Lorem,Ipsum
Lorem-Ipsum
是否有效?基本上,您的具体要求/条件是什么?只接受一个词。如果在单词示例“Test”空格或逗号之后还有其他不应接受的内容,我很抱歉,不清楚您要查找的内容。是否要查找
\w+(?:[,]+\w+
?请尝试-它将匹配以1+单词字符开头的字符串,然后重复一次或多次
后跟一个空格和1+字字符或1+重复一个空格,后跟1+字字符。另一种写作方式是,虽然这可以回答问题,但你可能不想提供一些额外的细节并解释答案。在目前的状态下,这个答案是低质量的。很好地解释了所有粒度+1