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]+$