Python validate phone number

def validate_phone_number(phone_number):
    formatted_number = ''
    split_phone = phone_number.split('x')
    if len(split_phone) > 1:
        phone_number = split_phone[0]
        extension = split_phone[1]
    else:
        phone_number = split_phone[0]
        extension = None
    stripped_number = re.sub(r"\D", "", phone_number)
    if len(stripped_number) == 10:
        formatted_number = "(%s%s%s) %s%s%s-%s%s%s%s" % tuple(stripped_number)
    elif len(stripped_number) == 11:
        formatted_number = "%s (%s%s%s) %s%s%s-%s%s%s%s" % tuple(stripped_number)
    if extension:
        formatted_number = formatted_number + " x" + re.sub(r"\D", "", extension)

    return formatted_number

2223334444 => (222) 333-4444
222 333 4444 => (222) 333-4444
12223334444 => 1 (222) 333-4444
1 222 333 4444 => 1 (222) 333-4444
12223334444x55 => 1 (222) 333-4444 x55
1 222 333 4444 x55 => 1 (222) 333-4444 x55

Leave a Comment