Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 由两个逗号分隔的三个单词的正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 由两个逗号分隔的三个单词的正则表达式

Javascript 由两个逗号分隔的三个单词的正则表达式,javascript,regex,Javascript,Regex,需要匹配下面给出的所有场景 不带逗号的最小一个单词 最多三个单词,由两个“单空格+逗号”(,)分隔 每个单词中不能有空格,但允许使用所有特殊字符 sometext, sometext, sometext-->valid sometext-->valid sometext, sometext-->valid sometext, sometext, sometext, -->invalid sometext, sometext, sometext, sometext --&

需要匹配下面给出的所有场景

不带逗号的最小一个单词

最多三个单词,由两个“单空格+逗号”(,)分隔

每个单词中不能有空格,但允许使用所有特殊字符

sometext, sometext, sometext-->valid
sometext-->valid
sometext, sometext-->valid

sometext, sometext, sometext, -->invalid
sometext, sometext, sometext, sometext -->invalid
sometext, -->invalid
sometext sometext, sometext sometext -->invalid
尝试了下面的表达式,但无法验证无效方案

[a-zA-Z]*(,[a-zA-Z]*){0,2}

谢谢

您可以使用此正则表达式:

/^(\w+,\s*){0,2}\w+$/gm

或允许除逗号和空格外的特殊字符使用:

/^([^\s,]+,\s*){0,2}[^\s,]+$/gm
试试这个:

/^[^ ,](,\s[^ ,]){0,2}$/

没有正则表达式只是为了好玩(我不知道它是否比正则表达式快)

var examples=['sometext,sometext,sometext',
“sometext”,
“sometext,sometext”,
“sometext,sometext,sometext,”,
“sometext,sometext,sometext,sometext”,
“sometext,”,
'sometext sometext,sometext sometext'];
示例.forEach(函数(示例){
var splitResult=example.split(',');
如果(splitResult.length<4&&
splitResult.indexOf(“”)==-1&&
splitResult.filter(函数(x){返回x.split(“”).length>1})。length==0&&
splitResult.filter(函数(x){return x.substr(-1)==','})。长度===0)
log(示例+':valid');
其他的
log(示例+“:无效”);
});

检查此正则表达式:

^([a-z]+,\s{1}){0,2}[a-z]+$  

它将与您提到的示例文本(包括空格)完全匹配。

如果允许使用所有特殊字符,那么您为什么要使用
[a-zA-Z]
?您所说的“所有特殊字符”是什么意思?
\1
与组1中最近捕获的精确文本匹配。只有当所有值都相同时,正则表达式才起作用。我知道这在OP的例子中是正确的,但可以放心地假设它不会出现在现实生活中。谢谢你让我知道这一点。
^([a-z]+,\s{1}){0,2}[a-z]+$