我在http://www.regexr.com/匹配laravel的正则表达式验证所需的正则表达式。 使用jpg / gif / png文件验证url结尾。
/(http|https):\/\/(www\.)?[\w-_\.]+\.[a-zA-Z]+\/((([\w-_\/]+)\/)?[\w-_\.]+\.(png$|gif$|jpe?g$))/ig
但是当我输入我的代码时,它会给我一个preg_match(): No ending delimiter '/' found
错误。
这是我的验证规则
$rules = [
'title' => 'required|min:3',
'description' => 'required|min:3',
'url' => 'required|regex:/(http|https):\/\/(www\.)?[\w-_\.]+\.[a-zA-Z]+\/((([\w-_\/]+)\/)?[\w-_\.]+\.(png$|gif$|jpe?g$))/ig',
];
答案 0 :(得分:2)
如前所述here,Laravel |
分隔符与正则表达式替换|
冲突。
中考虑的正则表达式
required|regex:/(http|https)...
是/(http
,因此错过了结束分隔符。
似乎你可以通过使用来解决问题(我冒昧地清理你的正则表达式中的一些东西):
'url' => array('required', 'regex:/(https?):\/\/(www\.)?[\w.-]+\.[a-zA-Z]+\/((([\w\/-]+)\/)?[\w.-]+\.(png|gif|jpe?g)$)/ig')
如果Laravel使用与/
不同的分隔符,我也建议使用其他东西(例如~
)来减轻\/
的森林。