我正在尝试验证URL,以确保它不包含localhost。我已经使用if-else完成了它,并且想要使用自定义验证程序来完成它。我不知道验证者怎么做。
if((strpos($request->input('url'), 'localhost') !== false) ||
(strpos($request->input('url'), 'http://localhost') !== false) ||
(strpos($request->input('url'), 'https://localhost') !== false) ||
(strpos($request->input('url'), '127.0.0.1') !== false) ||
(strpos($request->input('url'), 'http://127.0.0.1') !== false) ||
(strpos($request->input('url'), 'http://127.0.0.1') !== false))
{
return response()->json([
'error_description' => 'Localhost in not allowed in URL'
], 403);
}
答案 0 :(得分:0)
您可以使用url
的{{1}}验证器
答案 1 :(得分:0)
您已经可以通过现有验证和regex来实现它:
'url' => 'regex:/^http:\/\/\w+(\.\w+)*(:[0-9]+)?\/?$/',
我没有对此进行测试,但是它具有现有的验证规则。
答案 2 :(得分:0)
您可以使用
'url'=> ['regex'=>'/^((?:https?://|www.)(?:[-a-z0-9]+.)[-a -z0-9] +。)$ /'],
我希望这会有用
答案 3 :(得分:0)
$messages = [
'url.required' => 'Đường dẫn bắt buộc nhập',
'url.url' => 'Url không hợp lệ'
];
$data = request()->validate([
'url' => 'required|url',
], $messages);