一,只包含中文:
'city' => 'required|regex:/^[\x{4e00}-\x{9fa5}]+$/u',
正規表示式 [\x{4e00}-\x{9fa5}]
匹配所有中文字元,其中 \x{4e00}
是中文字元的開始碼,\x{9fa5}
是結束碼。
u
修飾符用於正規表示式,以支援 UTF-8 編碼
二,包含中英文數字
public function rules()
{
return [
'your_field' => ['required', 'regex:/^[A-Za-z0-9\x{4e00}-\x{9fa5}]+$/u']
];
}
三,指字字串長度範圍
使用min/max規則
例子:最短2個字,最長11個字
$message = [
'city' => '請選擇要搜尋的城市',
'city.min' => '長度最小2個字',
'city.max' => '長度最大11個字',
];
$params = $this->validate($request, [
//所屬城市
'city' => 'required|string|min:2|max:11|regex:/^[\x{4e00}-\x{9fa5}]+$/u',
],$message);
說明:laravel校驗時,對字串長度是按照utf-8計算的,對於中文來說很方便
四,指定字串固定長度
使用size規則
//得到城市
$message = [
'city' => '請選擇要搜尋的城市',
'city.size' => '長度固定11個字',
];
$params = $this->validate($request, [
//所屬城市
'city' => 'required|string|size:11|regex:/^[\x{4e00}-\x{9fa5}]+$/u',
],$message);
五,指定數字的大小範圍
// 引數檢查
$message = [
'age' => '使用者年齡錯誤',
];
$params = $this->validate($request, [
'age' => 'required|integer|between:1,120',
],$message);
六,分別指定數字的最大值和最小值
最小值用min
$message = [
'age' => '使用者年齡錯誤',
];
$params = $this->validate($request, [
'age' => 'required|numeric|min:18',
],$message);
最大值用max
// 引數檢查
$message = [
'age' => '使用者年齡錯誤',
'age.max' => '高於最大值',
];
$params = $this->validate($request, [
'age' => 'required|numeric|max:120',
],$message);
七,變數的值是固定的幾個,可以列舉:
用in列舉出可以選的值
//租還是買型別: 7.租共享單車8.買腳踏車
'type' => 'required|in:7,8',
八,變數是陣列
//商店型別 1.大型超市 2.夫妻店 3.社群底商 4.臨街門面 5.檔口攤位 6.百貨中心 7.其他
'shop_type'=>'nullable|array',
'shop_type.*'=>'required|in:1,2,3,4,5,6,7',