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+)+)$
看
正则表达式匹配:
-字符串的开头^
-1+字字符\w+
-替代组的开始:(?:
-(?:,\s\w+)+
,空格,1+字字符,
-或|
-空格和1+字字符(?:\s\w+)+
-组结束)
-字符串结束$
^\w+(?=(,?\s))(?:\1\w+)+$
看。这里的区别是(?=(,?\s))(?:\1\w+)+
:
-一个正向前瞻,检查当前位置右侧是否有可选的(?=(,?\s))
,然后立即有一个空格,并将该序列捕获到组1中,
-1个或多个序列:(?:\1\w+)+
-组1中捕获的相同文本\1
-1+字字符\w+
请参阅。由于上述所有方法都不适用于我,因此我提出了以下建议:
/([^,\s]+)/g
所以它们必须有一个空格,但也可以有一个逗号?或者逗号分隔的值(没有空格)是否也有效,例如
Lorem、Ipsum
?另外,Lorem、Ipsum
是否有效?请注意,Lorem,Ipsum
,Lorem,Ipsum
或Lorem-Ipsum
是否有效?基本上,您的具体要求/条件是什么?只接受一个词。如果在单词示例“Test”空格或逗号之后还有其他不应接受的内容,我很抱歉,不清楚您要查找的内容。是否要查找\w+(?:[,]+\w+
?请尝试-它将匹配以1+单词字符开头的字符串,然后重复一次或多次,
后跟一个空格和1+字字符或1+重复一个空格,后跟1+字字符。另一种写作方式是,虽然这可以回答问题,但你可能不想提供一些额外的细节并解释答案。在目前的状态下,这个答案是低质量的。很好地解释了所有粒度+1