Валидация URL на Elixir
Вместо полноценной статьи сегодня будет небольшой, но очень полезный фрагмент кода. Иногда бывает нужно понять валиден ли URL или нет.
Простой вариант решения этой задачи – использовать функцию URI.parse/1
.
defmodule MyApp.Helpers.UrlValidator do
def valid_url(url) do
case URI.parse(url) do
%URI{scheme: nil} -> {:error, "No scheme"}
%URI{host: nil} -> {:error, "No host"}
_ -> {:ok, url}
end
end
end
Воспользоваться ей очень просто:
MyApp.Helpers.UrlValidator.valid_url("https://google.com")
Функция вернёт либо {:ok, "https://google.com"}
, либо {:error, error_string}
.
Надеюсь это поможет!