Regex Laravel验证十进制0-99.99
Laravel没有对Regex Laravel验证十进制0-99.99,regex,validation,laravel-5,decimalformat,Regex,Validation,Laravel 5,Decimalformat,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
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\u match
非常感谢使用
regex
验证laravel
中的十进制所需的任何帮助(在十进制之前或之后使用可选值),laravelbetween
验证规则实际上非常强大,也可以处理十进制值。因此不需要使用regex,只需执行以下操作:
'required|between:0,99.99'
这将适用于允许两个十进制精度的数字:
function rules(){
return [
'field_name'=> array('regex:/^(?:d*.d{1,2}|d+)$/','min:1','max:10')
];
}
laravel(5?)between规则总是得到它必须解析一个小数,您必须向它添加数字才能正确验证
'required|numeric|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'
];
}
你确定
between:0,99.99
不起作用吗?是的,我想我是想得太多了……网站上的演示值从来没有使用过十进制,所以我从来没有想过在0.5延迟回复时检查这个失败,但你可以尝试required | numeric | between:0.00,99.99',
真正让我起作用的是我的AJAX请求是一个字符串&I为了正确地验证为数字,我必须在验证之前将其转换为浮点数:$request->merge(['inputName'=>(float)$request->input('inputName')];
required | numeric | 0.019999.99
注意:基于'between'代码:github.com/laravel/framework/blob/5.8/src/illighted/validateion/…您没有验证十进制位置的实际数量,只是数字在两个实数之间:0和9999.9900000…如果您尝试验证9999.981,它将被接受(并且可能在之后四舍五入到9999.98),但是如果您尝试使用9999.991,它将失败。在这种情况下不起作用['nullable'、'between:199999999.99'、'regex://^(?=.+)(?:[1-9]\d*|0)?(?:\.\d+?$/')效果很好