Валидация 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}.

Надеюсь это поможет!

© 2020 / Россия Любые мысли и вопросы пишите на elixir@wunsh.ru.