自定义验证规则ChsAlphaNum只能是汉字、字母和数字
创建自定义验证
php artisan make:rule ChsAlphaNum
自定义验证内容
<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
class ChsAlphaNum implements Rule
{
/**
* Create a new rule instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
if(is_object($value)&&get_class($value)=='Illuminate\Http\UploadedFile'){
$value=str_replace(['.',$value->guessClientExtension()],'',$value->getClientOriginalName());
}
return preg_match('/^[\x{4e00}-\x{9fa5}a-zA-Z0-9]+$/u', $value);
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return '只能是汉字、字母和数字组成,不能包含空格和特殊字符串';
}
}
项目中使用
use App\Rules\ChsAlphaNum;
$request->validate([
'name' => ['required', 'string', new ChsAlphaNum],
]);
我有封装一下Laravel 的中文验证
主要是参考thinkphp 的正则验证规则
github.com/liaoshengping/laravel-v...