比较来自世界各地的卖家的域名和 IT 服务价格

Laravel 5.5检查字符串是否包含精确的单词

在 laravel 我有
$string


$blacklistArray



$string = 'Cassandra is a clean word so it should pass the check';
$blacklistArray = ['ass','ball sack'];

$contains = str_contains/$string, $blacklistArray/; // true, contains bad word


结果
$contains

true,因此它将被标记为包含黑色列表中的单词 /怎么了/. 这是因为下面的名称部分包含
ass


C



安德拉

然而,这是一个部分巧合,而且
Cassandra

- Hello Word,所以不应该指出。 只有在线路中的单词完全一致,才必须标记。

有想法如何做到这一点?
已邀请:

喜特乐

赞同来自:

文件:
https://laravel.com/docs/5.5/h ... tains
功能
str_contains

确定此字符串是否包含指定的值:


$contains = str_contains/'This is my name', 'my'/;


您还可以传递一系列值以确定此字符串是否包含以下任何值:


$contains = str_contains/'This is my name', ['my', 'foo']/;

江南孤鹜

赞同来自:

$blacklistArray = array/'ass','ball sack'/;

$string = 'Cassandra is a clean word so it should pass the check';



$matches = array//;
$matchFound = preg_match_all/
"/\b/" . implode/$blacklistArray,"|"/ . "/\b/i",
$string,
$matches
/;

// if it find matches bad words

if /$matchFound/ {
$words = array_unique/$matches[0]/;
foreach/$words as $word/ {

//show bad words found
dd/$word/;
}

}

喜特乐

赞同来自:

str_contains//

与字符串合作 - 没有阵列,但您可以循环:


$string = 'Cassandra is a clean word so it should pass the check';
$blacklistArray = ['ass','ball sack'];

$flag = false;
foreach /$blacklistArray as $k => $v/ {
if str_contains/$string, $v/ {
$flag = true;
break;
}
}

if /$flag == true/ {
// someone was nasty
}

快网

赞同来自:

方法 Laravel
Str::contains//

可以检查有关工作的值。 不要忘记
use Illuminate\Support\Str;


效劳于 Laravel 7.x

还取得了价值阵列。 例子:

$string = 'Cassandra是一个干净的词,所以必须检查它;
$blacklistArray = ['ass','ball sack'];


if/Str::contains/$string, $blacklistArray//{return true;}

// returns true


虽然可能不是您的要求

要回复问题请先登录注册