验证匹配字符串
Posted
技术标签:
【中文标题】验证匹配字符串【英文标题】:Validating Matching Strings 【发布时间】:2015-10-05 00:19:03 【问题描述】:当我在 Laravel 中使用 Validation 功能时,如何添加允许在 Input 中使用的预定义字符串?
例如,假设我希望 Input 仅包含以下内容之一:foo,bar,baz
,我该怎么做?
$validator = Validator::make($credentials, [
'profile' => 'required|max:255', // Here I want Predefined allowed values for it
]);
【问题讨论】:
您是否尝试过对要匹配的单词在字段上进行正则表达式匹配? 现在我正在使用 phpin_array
手动检查并抛出异常,并且没有尝试过 laravel 验证正则表达式。你能提供一个样本吗?
【参考方案1】:
最好像这样使用“in”验证规则:
$validator = Validator::make($credentials, [
'profile' => ["required" , "max:255", "in:foo,bar,baz"]
]);
【讨论】:
【参考方案2】:在 Laravel 文档中建议在验证规则变大时将其放入数组中,我认为 3 条规则就足够了。我认为它使内容更具可读性,但您不必这样做。我在下面添加了regex
部分,我让它工作了。我对正则表达式的东西不是很好。告诉我。
$validator = Validator::make($credentials, [
'profile' => ["required" , "max:255", "regex:(foo|bar|baz)"]
]);
【讨论】:
完美!那行得通!当输入与正则表达式不匹配时,它会抛出异常The profile format is invalid
。我还删除了"max:255"
,因为无论如何我都将它与正则表达式匹配。非常感谢@ODelibalta 这正是我想要的! :)以上是关于验证匹配字符串的主要内容,如果未能解决你的问题,请参考以下文章