Use ExPhoneNumber.parse/2 to convert strings into %ExPhoneNumber.Model.PhoneNumber{} structs.
Important Rules:
- Never create
%ExPhoneNumber.Model.PhoneNumber{} structs manually; always use the parser. - Non-E164 numbers: You must provide a region code (ISO 3166-1 alpha-2, e.g., "US", "CH") if the number does not start with a
+. - E164 numbers: If the number starts with
+, the region code can be an empty string "" or nil.
The function returns {:ok, phone_number} on success or {:error, reason} on failure.
# Parse with region code (required for non-E164 numbers)
{:ok, phone_number} = ExPhoneNumber.parse("044 668 18 00", "CH")
{:ok, phone_number} = ExPhoneNumber.parse("(650) 253-0000", "US")
# Parse E164 numbers (region code can be empty string or nil)
{:ok, phone_number} = ExPhoneNumber.parse("+41446681800", "")
{:ok, phone_number} = ExPhoneNumber.parse("+12024561111", nil)