8

所以,我的模型中有以下规则:

public static $rules = array(
    'name'            => 'required|alpha_dash|unique:subsidiaries',
    'internal_number' => 'required|alpha_dash|unique:subsidiaries',
    'expedition_rate' => array('required', 'regex:/^[0-9]{1,3}(\.?)[0-9]{1,2}$/'),
    'hundred_kg_rate' => array('regex:/^[0-9]{1,5}(\.?)[0-9]{1,2}$/'),
    'handling'        => array('regex:/^[0-9]{1,3}(\.?)[0-9]{1,2}$/'),
    'insurance'       => 'required|numeric',
);

但是,由于某种原因,当正则表达式应用于patternhtml 的属性标记时......它会中断!

结果:

<input required="true" pattern="^[0-9]{" class="form-control" ....>
                               _________
                                 \
                                  => This right here should be
                               ^[0-9]{1,3}(\.?)[0-9]{1,2}$
4

2 回答 2

2

尝试像这样使用。

array(
    'field' => 'regex:[a-z]'
);

希望这会有所帮助。

于 2014-09-30T14:50:53.110 回答
0

尝试转义花括号...我敢打赌 PHP 期望解析内部的变量,如下所示:

$var = 'something';
echo 'The value is {$var}.';
// Outputs:
// The value is something.

将此与以下内容进行对比:

$var = 'something';
echo 'The value is \{$var\}.';
// Outputs:
// The value is $var.

不过,让我感到困惑的部分是这些都在单引号内,所以这不应该发生。也许是 Laravel 的东西?

于 2013-09-23T15:29:33.760 回答