xema v0.6.1 Xema.Format 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

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

Link to this type

format() View Source
format() ::
  :date
  | :date_time
  | :email
  | :hostname
  | :ipv4
  | :ipv6
  | :json_pointer
  | :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

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.

Link to this function

date_time?(string) View Source
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.

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 BNF rules from RFC 5322 transformed to PCRE by Nikita Popov and described in the post The true power of regular expressions .

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.

Link to this function

hostname?(string) View Source
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.

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.

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.

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> Format.is?(:email, "foo@bar.net")
iex> true
iex> Format.is?(:email, "foo.bar.net")
iex> false
Link to this function

json_pointer?(string) View Source
json_pointer?(String.t()) :: boolean()

Checks if the string is a valid JSON pointer representation.

Link to this function

relative_json_pointer?(string) View Source
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.

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.

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

Link to this function

uri_fragment?(string) View Source
uri_fragment?(String.t()) :: boolean()

Checks if the string is a valid URI fragment representation.

Link to this function

uri_path?(string) View Source
uri_path?(String.t()) :: boolean()

Checks if the string is a valid URI path representation.

See also Xema.Format.uri?/1.

Link to this function

uri_query?(string) View Source
uri_query?(String.t()) :: boolean()

Checks if the string is a valid URI query representation.

Link to this function

uri_reference?(string) View Source
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
uri_template_path?(String.t()) :: boolean()

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

Link to this function

uri_userinfo?(string) View Source
uri_userinfo?(String.t()) :: boolean()

Checks if the string is a valid URI user info.

See also Xema.Format.uri?/1.