我需要驗證一個長度正好為 6 或 8 的字串。我怎樣才能為這個驗證制定規則?
數字必須是 6 或 8,不能介于 6 和 8 之間。
uj5u.com熱心網友回復:
您需要創建自定義規則。
在下面的示例中,我使用 Closure 創建了一個自定義規則,但您可以創建一個規則物件來重用它。
我用mb_strlen代替strlen來覆寫多位元組。(UTF8 字符)
use Illuminate\Support\Facades\Validator;
use \Illuminate\Http\Request;
Route::get('/test', function (Request $request) {
$validator = Validator::make($request->all(), [
'title' => [
'required',
function ($attribute, $value, $fail) {
if (!(mb_strlen($value) == 8 || mb_strlen($value) == 6))
{
$fail('The ' . $attribute . ' is invalid.');
}
},
],
]);
dd($validator->errors());
});
uj5u.com熱心網友回復:
嘗試先保存字串長度,然后檢查 if 條件。
$str = “hellowld”;
$len = strlen($str);
If($len == 6 || $len == 8)
//do something
Else
//throw error
或使用正則運算式驗證規則作為長度:
/^[68] $/
對于字串長度。
uj5u.com熱心網友回復:
您實際上不需要制作自己的驗證器,因為 Laravel 的驗證帶有正則運算式驗證規則,因此您可以這樣做:
[
...
'parameter' => 'regex:/^(?=.*$)(?:.{6}|.{8})$/g',
...
]
正則運算式從這里被盜并改編,但你可以在這里測驗它
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/521854.html
標籤:php拉拉维尔
上一篇:使用psycopg3將CSV資料匯入PostgreSQL會導致psycopg.errors.InvalidDatetimeFormat
