Laravel正则表达式验证价格或空

poa*_*oas 3 php regex laravel

我试图为价格制作正则表达式或空.我有价格部分(荷兰语使用逗号而不是点数)实际上有效

/^\d+(,\d{1,2})?$/
Run Code Online (Sandbox Code Playgroud)

上面的正则表达式在值21,99上验证了ok

现在我尝试添加空部分,以便字段可以......只是空^ $

/(^$|^\d+(,\d{1,2})?$)/
Run Code Online (Sandbox Code Playgroud)

但是当我改变正则表达式时,Laravel开始抱怨:"方法[验证^\d +(,\ d {1,2})?$)/]不存在."

工作正常:

$rules = [
    'price' => 'regex:/^\d+(,\d{1,2})?$/'
];
Run Code Online (Sandbox Code Playgroud)

Laravel说没有......:

$rules = [
    'price' => 'regex:/(^$|^\d+(,\d{1,2})?$)/'
];
Run Code Online (Sandbox Code Playgroud)

Kenken9990回答 - Laravel不再破坏,但空值仍然是错误的:

$rules = [
    'price' => 'regex:/^(\d+(,\d{1,2})?)?$/'
];
Run Code Online (Sandbox Code Playgroud)

ken*_*999 7

这是工作吗?

$rules = [
    'price' => 'nullable|regex:/^(\d+(,\d{1,2})?)?$/'
];
Run Code Online (Sandbox Code Playgroud)

  • @poashoas添加''nullable'` (2认同)