我需要允许最多4个标签(单词),它们应该是 用逗号分隔。例如:
*This, is, 4, tags
* < ==应该没问题!
*now, 3, tags*
< ==应该没问题!
*or, 2*
< ==应该没问题!
*one*
< ==应该没问题!
但是..
*this, is, more, than, 4, tags*
< ==不应该有效!
答案 0 :(得分:1)
这应该适合你:
^[^,]+(,[^,]+){0,3}$
答案 1 :(得分:1)
使用/^\w+(,\s*\w+){0,3}$/
:
preg_match('/^\w+(,\s*\w+){0,3}$/', 'This, is, 4, tags'); # 1
preg_match('/^\w+(,\s*\w+){0,3}$/', 'now, 3, tags'); # 1
preg_match('/^\w+(,\s*\w+){0,3}$/', 'or, 2'); # 1
preg_match('/^\w+(,\s*\w+){0,3}$/', 'one'); # 1
preg_match('/^\w+(,\s*\w+){0,3}$/', 'this, is, more, than, 4, tags'); # 0
答案 2 :(得分:1)
不是真正的正则表达式的工作......
$tags = explode(",",$input_string);
if( count($tags) > 4) die("Too many tags!");
答案 3 :(得分:1)
这是一个解决方案:
^([^,]*,?[^,]*){3}$