Xema.Format (xema v0.13.6) View Source

This module contains semantic validators for strings.

Link to this section Summary

Types

The list of supported validators.

Functions

Checks if the string is a valid date representation.

Checks if the string is a valid date time representation.

Checks if the string is a valid email representation.

Checks if the string is a valid host representation.

Checks if the string is a valid hostname representation.

Checks if the string is a valid IPv4 address representation.

Checks if the string is a valid IPv6 address representation.

Checks if the value matches the given type. The function expected a available format and a string to check. Returns true for a valid string, false otherwise.

Checks if the string is a valid JSON pointer representation.

Return true if string contains a regular expression.

Checks if the string is a valid JSON pointer representation.

Returns true for a valid format type, false otherwise. This macro can be used in guards.

Checks if the string is a valid time representation.

Checks if the string is a valid URI representation.

Checks if the string is a valid URI fragment representation.

Checks if the string is a valid URI path representation.

Checks if the string is a valid URI query representation.

Checks if the string is a valid URI reference representation.

Checks if the string is a valid URI template representation.

Checks if the string is a valid URI template path representation.

Checks if the string is a valid URI user info.

Link to this section Types

Specs

format() ::
  :date
  | :date_time
  | :email
  | :hostname
  | :ipv4
  | :ipv6
  | :json_pointer
  | :regex
  | :relative_json_pointer
  | :time
  | :uri
  | :uri_fragment
  | :uri_path
  | :uri_query
  | :uri_reference
  | :uri_template
  | :uri_userinfo

The list of supported validators.

Link to this section Functions

Specs

date?(String.t()) :: boolean()

Checks if the string is a valid date representation.

This function returns true if the value is a string and is formatted as defined by RFC 3339, false otherwise.

Specs

date_time?(String.t()) :: boolean()

Checks if the string is a valid date time representation.

This function returns true if the value is a string and is formatted as defined by RFC 3339, false otherwise.

Specs

email?(String.t()) :: boolean()

Checks if the string is a valid email representation.

This function returns true if the value is a string and is formatted as defined by RFC 5322, false otherwise.

The regular expression was taken from https://emailregex.com/.

Examples

iex> import Xema.Format
iex>
iex> email?("marin.musterman@germany.net")
true
iex> email?("Otto.Normalverbraucher")
false
iex> email?("Otto.Normal@Verbraucher.NET")
true

Specs

host?(String.t()) :: boolean()

Checks if the string is a valid host representation.

This function returns true if the value is a valid IPv4 address, IPv6 address, or a valid hostname, false otherwise.

Examples

iex> import Xema.Format
iex>
iex> host?("127.0.0.1")
true
iex> host?("localhost")
true
iex> host?("elixirforum.com")
true
iex> host?("go go go")
false

Specs

hostname?(String.t()) :: boolean()

Checks if the string is a valid hostname representation.

This function returns true if the value is a string and is formatted as defined by RFC 1034, false otherwise.

Specs

ipv4?(String.t()) :: boolean()

Checks if the string is a valid IPv4 address representation.

This function returns true if the value is a string and is formatted as defined by RFC 2673, false otherwise.

Specs

ipv6?(String.t()) :: boolean()

Checks if the string is a valid IPv6 address representation.

This function returns true if the value is a string and is formatted as defined by RFC 2373, false otherwise.

Specs

is?(format(), String.t()) :: boolean()

Checks if the value matches the given type. The function expected a available format and a string to check. Returns true for a valid string, false otherwise.

Examples

iex> Xema.Format.is?(:email, "foo@bar.net")
true
iex> Xema.Format.is?(:email, "foo.bar.net")
false

Specs

json_pointer?(String.t()) :: boolean()

Checks if the string is a valid JSON pointer representation.

Specs

regex?(String.t()) :: boolean()

Return true if string contains a regular expression.

Link to this function

relative_json_pointer?(string)

View Source

Specs

relative_json_pointer?(String.t()) :: boolean()

Checks if the string is a valid JSON pointer representation.

Link to this macro

supports(format)

View Source (macro)

Returns true for a valid format type, false otherwise. This macro can be used in guards.

Specs

time?(String.t()) :: boolean()

Checks if the string is a valid time representation.

This function returns true if the value is a string and is formatted as defined by RFC 3339, false otherwise.

Specs

uri?(String.t()) :: boolean()

Checks if the string is a valid URI representation.

This function returns true if the value is a string and is formatted as defined by RFC 3986, false otherwise.

The following are two example URIs and their component parts:

                      hierarchical part
                            |
        |-----------------------------------------|
                    authority               path
                        |                    |
        |-------------------------------||--------|
  abc://username:password@example.com:123/path/data?key=value#fragid1
  |-|   |---------------| |---------| |-|           |-------| |-----|
   |            |              |       |                |        |
scheme  user information     host     port            query   fragment

  urn:example:mammal:monotreme:echidna
  |-| |------------------------------|
   |                 |
scheme              path

Wikipedia: Uniform Resource Identifier

Specs

uri_fragment?(String.t()) :: boolean()

Checks if the string is a valid URI fragment representation.

Specs

uri_path?(String.t()) :: boolean()

Checks if the string is a valid URI path representation.

See also Xema.Format.uri?/1.

Specs

uri_query?(String.t()) :: boolean()

Checks if the string is a valid URI query representation.

Specs

uri_reference?(String.t()) :: boolean()

Checks if the string is a valid URI reference representation.

Checks if the string is a valid URI template representation.

Link to this function

uri_template_path?(string)

View Source

Specs

uri_template_path?(String.t()) :: boolean()

Checks if the string is a valid URI template path representation.

Specs

uri_userinfo?(String.t()) :: boolean()

Checks if the string is a valid URI user info.

See also Xema.Format.uri?/1.