Php Laravel正则表达式与JPG不工作的Url匹配
我在匹配一个用于laravel的正则表达式验证的正则表达式。 验证url是否以jpg/gif/png文件结尾Php Laravel正则表达式与JPG不工作的Url匹配,php,regex,validation,laravel,match,Php,Regex,Validation,Laravel,Match,我在匹配一个用于laravel的正则表达式验证的正则表达式。 验证url是否以jpg/gif/png文件结尾 /(http | https):\/\/(www.)?[\w-\.]+\.[a-zA-Z]+\/(([\w-\/]+)\/)?[\w-\.]+\.(png$gif$;jpe?g$)/ig 但是当我放入代码时,它会抛出一个preg_match():找不到结尾分隔符“/”错误 这是我的验证规则 $rules = [ 'title' =>
/(http | https):\/\/(www.)?[\w-\.]+\.[a-zA-Z]+\/(([\w-\/]+)\/)?[\w-\.]+\.(png$gif$;jpe?g$)/ig
但是当我放入代码时,它会抛出一个preg_match():找不到结尾分隔符“/”错误
这是我的验证规则
$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',
];
如前所述,Laravel
定界符与regex替换
冲突
中考虑的正则表达式
required|regex:/(http|https)...
是/(http
,因此缺少结尾分隔符
似乎您可以通过使用(我冒昧地清理了您的正则表达式中的一些内容)来解决此问题:
如果Laravel同意使用不同于/
的分隔符,我还建议使用其他分隔符(~
)为了减轻\/
的麻烦,在删除g
修饰符后,您的代码对我来说运行良好。@AvinashRaj,我仍然遇到了错误。我得到了try find相同的情况,但仍然遇到了错误,不确定laravel regex验证格式/语法是如何工作的。对它来说仍然是新的。我重新编写了文档,解释了很多。使用start和正则表达式中的结束锚定符^(http | https):\/\/(www\)?[\w-\.]+\.[a-zA-Z]+/(([\w-\/]+)\/)?[\w-\.]+\.(png$\gif$;jpe?g$)$
使用不同的delimeter,比如说
'url' => array('required', 'regex:/(https?):\/\/(www\.)?[\w.-]+\.[a-zA-Z]+\/((([\w\/-]+)\/)?[\w.-]+\.(png|gif|jpe?g)$)/ig')