繁体   English   中英

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

[英]Regular expression for three word seperated by two comma

需要匹配下面给出的所有方案

最少一个字,不要用逗号

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

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

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'];

examples.forEach(function(example){
    var splitResult = example.split(', ');

    if (splitResult.length < 4 && 
        splitResult.indexOf('') === -1 && 
        splitResult.filter(function(x){return x.split(' ').length > 1}).length === 0 && 
        splitResult.filter(function(x){return x.substr(-1) === ','}).length === 0)
        console.log(example + ': valid');
    else
        console.log(example + ': not valid');
});

检查此正则表达式:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM