Packages

A library of convenience functions for manipulating datasets.

Current section

Files

Jump to
fitz lib validators validate.ex
Raw

lib/validators/validate.ex

defmodule Validate do
@moduledoc """
Documentation for Fitz.Validator.
"""
@doc """
Validate email.
Validates an email address
## Examples
iex> email = "crystal@gmial.com"
"crystal@gmial.com"
iex> Fitz.Validate.email(email)
true
iex>
nil
iex> email = "crystalgmial.com"
"crystalgmial.com"
iex> Fitz.Validate.email(email)
false
"""
def email(email) do
Regex.match?(~r/\A([\w+\-].?)+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i, email)
end
@doc """
Validate password.
Validates a password
## Examples
iex> required = ["#", "@", "3"]
["#", "@", "3"]
iex> Fitz.Validate.password("applesauve@as3", 9, required)
false
"""
def password(password, length, required) when is_list(required) do
with true <- String.length(password) >= length,
true <- Fitz.String.contains_all?(password, required)
do
true
else
# nil -> {:error, ...} an example that we can match here too
err -> false
end
end
end