Laravel 中使用 doesntContain 简化字符串检测
需要检查字符串是否未包含某些单词吗?Laravel 的 Str
helper 提供的新 doesntContain
方法使这项任务变得轻而易举!让我们来探索一下这个简单但有用的功能是如何工作的。
使用 doesntContain
doesntContain
方法是 contains
的反面,当字符串不包含特定内容时返回 true
:
use Illuminate\Support\Str;
$str = 'My favorite food is Pizza';
// Single value check
$result = Str::doesntContain($str, 'Steak'); // true
$result = Str::doesntContain($str, 'Pizza'); // false
多值检测
你也可以一次性检测多个值:
$result = Str::doesntContain($str, ['Steak', 'Spaghetti']); // true
$result = Str::doesntContain($str, ['Steak', 'Spaghetti', 'Pizza']); // false
真实示例
以下是内容过滤系统中可能的用例:
class ContentFilter
{
protected array $bannedWords = ['spam', 'scam', 'free money'];
public function isClean(string $content): bool
{
return Str::doesntContain(
strtolower($content),
$this->bannedWords
);
}
public function filterComment(Comment $comment)
{
if ($this->isClean($comment->content)) {
$comment->approve();
} else {
$comment->markForReview();
}
}
}
doesntContain
方法提供了一种干净、直观的方法来检查内容中是否缺少字符串。无论是过滤内容、验证输入还是处理文本,此方法都会使代码更具可读性和可维护性。