Laravel验证器正则表达式:验证所有以逗号分隔的格式

时间:2018-06-27 20:10:20

标签: php regex laravel validation

我正在努力让Laravel的正则表达式验证器验证以下格式的字符串:逗号分隔键:值对

abs : xyz, fgh:abc {,.....}

我的正则表达式如下:

^((,)*((\s?\w+:\d+)+))$

我用它来匹配{fail,ok:2'上的,ok:2。它通过了,因为有一场比赛。 如果逗号分隔的值中的任何一个没有正确的'key:value'格式,我就需要它失败。

我正在运行preg_match的PHP中使用此正则表达式(因为我试图在Laravel中将其用作正则表达式验证器模式)。

我需要一个验证器来使ID失败,逗号分隔值中的任何ANY都不是键:值对

1 个答案:

答案 0 :(得分:0)

如果输入字符串不包含正确的key:value-pairs列表,则正则表达式会失败:

^(?:\s*\w+\s*:\s*\w+\s*(?:,\s*|$))+$

Demo

这里的想法是,从开头^到结尾$匹配概述的key:value-pair模式,并带有可选的空格-用逗号分隔或按结束位置。