我喜欢Laravel 4.2。我试图使用验证器来验证带有正则表达式的名称字段,这是我的规则:
type SortList interface{}
但是,只要我调用规则进行验证,就会抛出错误,请参阅下文:
public static $rules_save = [
'name' => 'required|regex:/[XI0-9/]+/|unique:classes'
];
在以下位置:
preg_match(): Unknown modifier ']'
答案 0 :(得分:5)
由于您需要在字符类中包含/
,因此您需要先了解它:
'name' => 'required|regex:/[XI0-9\/]+/|unique:classes'
^
或使用其他regex delimiters。
使用PCRE功能时,需要将模式包含在分隔符中。分隔符可以是任何非字母数字,非反斜杠,非空白字符。
经常使用的分隔符是正斜杠(
/
),哈希符号(#
)和波浪号(~
)。
答案 1 :(得分:1)
正如第一张海报(stribizhev)指出的那样,你需要转义正斜杠/
,这是因为反斜杠/
被用作该模式中的分隔符。因此,使其在角色类中扮演一个特殊角色。
因此你的模式应该是这样的
/[XI0-9\/]+/
但是如果你使用其他分隔符,例如#
,那么就没有必要逃避正斜杠。
#[XI0-9/]+#
在这里,我没有逃避正斜杠,因为我使用#
作为分隔符
希望这有帮助。
有关详细信息,请查看stribizhev发布的链接。