Laravel 没有对
decimal
进行验证,因此我需要 regex
或其他验证方法来验证 0 - 99.99
的数值
我已经尝试过
required|regex:^\d{0,2}(\.\d{1,2})?$/
required|regex:[1-9]\d?(\.\d\d?)?|0\.[1-9]\d?||0\.0[1-9]
required|regex:/[1-9]\d?(\.\d\d?)?|0\.[1-9]\d?||0\.0[1-9]/
required|regex:/[\d]{2}.[\d]{2}/
required|regex:/[\d]{0-2}.[\d]{0,2}/
我在尝试输入
0.05
时收到“无效格式”或未知的 preg_match
修饰符
任何关于验证
regex
中的小数所需的 laravel
的帮助都值得赞赏(小数点之前或之后的可选值
规则之间的 laravel(5?) 总是让它必须解析小数,您必须向其添加数字才能正确验证
'required|numeric|between:0,99.99',
Laravel
between
验证规则实际上非常强大,也可以处理十进制值。所以不需要使用正则表达式,只需这样做:
'required|between:0,99.99'
这对我有用:
function rules(){'field' => ['required','numeric', 'min:1','max:99.99', 'regex:/^\d+(\.\d{1,2})?$/']}
如果您想自定义消息,那么:
public function messages()
{
return [
'field.regex' => 'custom your message'
];
}
这适用于允许两位小数精度的数字:
function rules(){
return [
'field_name'=> array('regex:/^(?:d*.d{1,2}|d+)$/','min:1','max:10')
];
}
这适用于带小数和不带小数的数字:
必需|gte:0|lte:99
从 laravel 10 开始,您可以通过以下方式进行验证:
// Must have exactly two decimal places (9.99)...
'price' => 'decimal:2'
// Must have between 2 and 4 decimal places...
'price' => 'decimal:2,4'
文档在这里。
validate()->make([
'min_commission' => 'required_with:end_page|numeric|min:0|max:0',
'max_commission' => 'required_with:end_page|numeric|min:0|max:99',
]);