验证匹配字符串

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

【问题讨论】:

您是否尝试过对要匹配的单词在字段上进行正则表达式匹配? 现在我正在使用 php in_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 这正是我想要的! :)

以上是关于验证匹配字符串的主要内容,如果未能解决你的问题,请参考以下文章

java正则表达式:验证字符串数字

Ajax和PHP正则表达式验证表单及验证码

js常见正则表达式验证及方法

正则表达式表单验证实例代码详解

JavaScript表单验证

7.4 Javascript:表单验证-揭开正则表达式的面纱