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
的任何帮助都是值得赞赏的(使用十进制之前或之后的可选值
答案 0 :(得分:55)
规则之间的laravel(5?)总是得到它必须解析小数,你必须添加数字才能正确验证
'required|numeric|between:0,99.99',
答案 1 :(得分:40)
Laravel between
验证规则实际上非常强大,也可以处理小数值。因此,没有必要使用正则表达式:
'required|between:0,99.99'
答案 2 :(得分:6)
这对我有用:
function rules(){'field' => ['required','numeric', 'min:1','max:99.99', 'regex:/^\d+(\.\d{1,2})?$/']}
如果要自定义消息,则:
public function messages()
{
return [
'field.regex' => 'custom your message'
];
}
答案 3 :(得分:5)
这适用于允许两位小数精度的数字:
function rules(){
return [
'field_name'=> array('regex:/^(?:d*.d{1,2}|d+)$/','min:1','max:10')
];
}