2016-09-27 1223 views
1

我試圖使用Laravel的驗證類驗證文本字段。相同的文本字段可以具有正好8位數字或16位數字。下面的代碼不起作用。Laravel字段驗證:允許8位或16位數字

$validationRules = [ 
     'number' => 'required|digits:8/16', 
    ]; 
+1

也許你可以使用正則表達式'(\ d {8} | \ d {16})'https://www.debuggex.com/r/T70gdEzmCV3LuT31 –

+0

或條件規則https://laravel.com/docs/5.3/validation#conditionally-adding-rules或自定義規則https://laravel.com/docs/5.3/validation#custom-validation-rules,而正則表達式似乎最優雅的 – jsphpl

+0

而不是使用正則表達式,你應該創建自定義驗證規則來處理這種情況。確實,正則表達式會更快地工作,而不是調用自定義方法,但是讀起來並不容易(特別是對於更長的模式) –

回答

1

試試這個

$validationRules = [ 
    'number' => 'required|regex:/^(\d{8}|\d{16})$/', 
];