【发布时间】:2018-12-11 00:46:50
【问题描述】:
我正在尝试为价格或为空的正则表达式。 我有实际有效的价格部分(荷兰语使用逗号而不是点)
/^\d+(,\d{1,2})?$/
上面的正则表达式在值 21,99 上验证 ok
现在我尝试添加空白部分,以便该字段可以......只是空的^$
/(^$|^\d+(,\d{1,2})?$)/
但是,当我更改正则表达式时,Laravel 开始抱怨: “方法 [validate^\d+(,\d{1,2})?$)/] 不存在。”
工作正常:
$rules = [
'price' => 'regex:/^\d+(,\d{1,2})?$/'
];
Laravel 说不...:
$rules = [
'price' => 'regex:/(^$|^\d+(,\d{1,2})?$)/'
];
Kenken9990 答案 - Laravel 不再中断,但空值仍然是错误的:
$rules = [
'price' => 'regex:/^(\d+(,\d{1,2})?)?$/'
];
【问题讨论】:
-
你能添加一个有效和无效的模式,正则表达式需要验证。
-
在 php 中你能使用像 lambda 函数这样的正则表达式吗?我不认为你可以。
-
@emsimpson92 我不是程序员,不是 Lambda?
-
抱歉,我的意思是匿名函数。
=>正是 C# 语法。看起来它在 PHP 中有a different meaning。你的问题是=> -
@emsimpson92 在 PHP 中,您可以创建一个这样的数组。示例 1 有效,示例 2 失败。这只是我认为的正则表达式,或者 Laravel ......哦,现在我知道你对 Lamba 的意思了,将值传递给函数或其他东西?