You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何实现不区分大小写的关键词过滤验证规则?

Laravel关键词过滤规则大小写不敏感修复方案

你的代码里Str::contains默认是区分大小写的,所以像"Video"这类大小写变体的关键词没法被检测到,给你几个简单的修复方案:

方案1:利用Str::contains的大小写参数

Laravel的Str::contains方法支持第三个参数控制是否区分大小写,把它设为false即可:

public function passes($attribute, $value)
{
    return ! collect(explode(' ', $value))->contains(function ($word){
        return Str::contains($word, ['video'], false);
    });
}

方案2:统一转小写匹配

如果你的Laravel版本较旧,不支持第三个参数,可以把输入的单词和关键词都转成小写后再匹配,兼容性更强:

public function passes($attribute, $value)
{
    return ! collect(explode(' ', $value))->contains(function ($word){
        return Str::contains(strtolower($word), ['video']);
    });
}

要是你不需要按空格拆分单词,想直接检查整个字符串里是否包含关键词(不管位置),还可以更简化:

public function passes($attribute, $value)
{
    return ! Str::contains(strtolower($value), ['video']);
}

内容的提问来源于stack exchange,提问作者japahen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 05:31:35