Phone Validation Regex: The What, How, and Pros and Cons

When you receive manually entered phone numbers via a web form, one of the most basic things should be to validate that the format provided matches the expected format of a phone number in a given country. For example, a simple check, like if the phone is 10 or 11 digits and only contains specific or special characters, is an easy way to check that the number provided is valid. Without a high degree of confidence, time and resources are wasted on chasing down leads or reaching out to individuals with bad data.

This can be done using what we call regex in a programming language. While regex (regular expression) is not the only tool you have to validate phone numbers, it gives you valuable insights into the potential legitimacy of the data you are ingesting at the onset without any costs involved and is pretty straightforward to implement. 

Regex is not limited to validating phone numbers. Its versatility allows it to be applied to a wide range of standardized strings of text, such as IP addresses, email addresses, and more.

What is Regex?

Regex, or regular expression, is a standard formatting framework. It validates against an outline of what you expect a form input to look like. Regex is flexible, and you can provide guidelines in a pattern that fits the type of formatting you’d like to validate.

As an example, take a look at the below phone regex pattern:

^\+\d{1,3}\d{9}$

This regex pattern would allow a phone number field to be populated with any 9-digit phone number from any country code 1-3 digits long. For this example, we will break down each part of the string.

  • “^” indicates the start of the string.
  • “\+” matches the plus sign indicating the start of the country code.
  • “\d{1,3}” matches 1 to 3 digits for the country code, allowing for country codes of various lengths.
  • “\d{9}” matches exactly 9 digits for the area code and phone number combined.
  • “$” indicates the end of the string.

As an alternative example, you could explicitly create a regex pattern that only U.S. numbers are allowed by narrowing the scope of your regex validation:

^\(?\d{3}\)?[-\s]?\d{3}[-\s]?\d{4}$

You may notice this regex pattern is quite a bit longer. Since the regex pattern only accepts U.S. phone numbers, there is no need to request a country code in your form. You can also include additional checks for common things like parenthesis, dashes, or spaces. 

Examples like 123-456-7890, (123) 456-7890, and 123 456 7890 would all be accepted because the special characters are optional.

If you want to validate a different input type, like an email address, your regex pattern might look like this:

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

This pattern checks for at least some (any) text at the beginning of the entry, an “@” symbol, at least some (any) text after the “@” symbol, a “.” (period), and finally at least two characters (any) after the period. 

How is Regex used?

Regex is all about top-level validation. Most companies inevitably expend significant resources on the leads they pursue. Tools like regex patterns, alongside Trestle’s powerful APIs, can enable several use cases while optimizing your costs.

While regex patterns can become complex to develop and implement for specific validation types, they are typically very reliable. Additionally, they can be implemented in several different programming languages, such as Javascript, Python, and Java.

In Python, you can use the “re” module to work with regular expressions. Here’s how you might use it to check if a string matches the specified phone number format:

import re
# Define the regex pattern for a phone number
pattern = r"^\+\d{1,3}\d{9}$"
# Example phone number
phone_number = "+12345678901"
# Check if the phone number matches the pattern
if re.match(pattern, phone_number):
    print("The phone number is valid.")
else:
    print("The phone number is invalid.")

In Java, you can use the Pattern and Matcher classes from the java.util.regex package to work with regular expressions. Here’s a similar example:

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class PhoneNumberValidation {
    public static void main(String[] args) {
        // Define the regex pattern for a phone number
        String pattern = "^\\+\\d{1,3}\\d{9}$";
        // Example phone number
        String phoneNumber = "+12345678901";
        // Create a Pattern object
        Pattern r = Pattern.compile(pattern);
        // Create a matcher object
        Matcher m = r.matcher(phoneNumber);
        // Check if the phone number matches the pattern
        if (m.find()) {
            System.out.println("The phone number is valid.");
        } else {
            System.out.println("The phone number is invalid.");
        }
    }
}

Regex can be used to produce specific lengths and shapes or even include specific characters in the forms your customers might fill out. Then, if a pattern check fails, you can give feedback on a person’s response and let them know it’s not valid (and why). For example, a common way we all interact with regex patterns is with password forms.

^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[!#$]).{8,}$

This pattern requires that your input includes an upper and lower case letter, a symbol (“!”, “#”, or “$”), and a number. It also checks to ensure the input is at least eight characters long.

For Trestle’s customers, the most common implementation of regex patterns will generally be phone numbers or email addresses. After an input passes a regex validation, you can pass it through Trestle’s APIs with more confidence that the data you pass will be valid and that you will get feedback.

Pros and Cons

Regex allows you to complete a validity check before data is consumed but does not validate that a phone number or email address is real. Its priority is to avoid collecting data that is known to be invalid before you complete the rest of your checks or invest any resources into that input. For this reason, regex is only one part of the equation and should be used in the context of a suite of validation tools. 

Additionally, while regex patterns can help you validate specific phone numbers formats, they cannot cover all possible formats. Someone might attempt to input a valid number but in a format that is not accepted. You can overcome this by providing context to your users and letting them know what format your form accepts. For example, if a user submits a phone number that fails the regex pattern check, you can pop a warning flag that lets the user know you are looking for a valid 10-digit U.S. phone number without special characters or spaces. 

The Advantage of Combining Regex with Trestle’s Phone Validation API

When you supplement regex patterns with APIs like Trestle’s Phone Validation API, you can be more confident that you are submitting a potentially valid phone number. The response from the API can tell you if a number is valid or valuable to your business.

Below, you can see a Phone Validation API JSON response, which contains several valuable insights.

Combining the strengths of regex patterns and Trestle’s Phone APIs produces confidence in the form input and your ability to take action or prioritize the phone numbers you receive. 

  • Phone Validation Regex
    • The syntax is correct.
      • There’s confidence that you are receiving a number that is formatted correctly.
  • Phone Validation API
    • Phone is valid.
      • There’s confidence that the phone number follows specific country formats and that the initial digits are within the ranges allowed for the country.
    • Activity Score
      • There’s confidence in the amount of activity this phone has had in the last 12 months and whether the phone is connected or disconnected. There is no point in accepting disconnected phone numbers; thus, you cannot reach that lead or sign up.
    • Line Type
      • There’s confidence that you can interact with this number the way you want to (e.g., only mobile phones can receive texts)

You can learn more about specific rules that can be set for specific use cases and how they can help optimize workflows here

If you are interested in utilizing any of Trestle’s APIs to enhance your validation processes, please contact us. You can set up a meeting, email us at support@trestleiq.com, or check out our Phone Validation demo.

This blog post was written by Tyler Woodward, Technical Account Manager at Trestle.