Created
November 2, 2018 11:57
-
-
Save AndriiBozh/03dd0162c81867da27a541d3ef20b2eb to your computer and use it in GitHub Desktop.
Telephone Number Validator (Reg Ex)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ASSIGNMENT | |
__________________________________________________________________________________________________________________________ | |
Return true if the passed string looks like a valid US phone number. | |
The user may fill out the form field any way they choose as long as it has | |
the format of a valid US number. The following are examples of valid formats for US numbers | |
(refer to the tests below for other variants): | |
555-555-5555 | |
(555)555-5555 | |
(555) 555-5555 | |
555 555 5555 | |
5555555555 | |
1 555 555 5555 | |
For this challenge you will be presented with a string such as 800-692-7753 or 8oo-six427676;laskdjf. | |
Your job is to validate or reject the US phone number based on any combination of the formats provided above. | |
The area code is required. If the country code is provided, you must confirm that the country code is 1. | |
Return true if the string is a valid US phone number; otherwise return false. | |
___________________________________________________________________________________________________________________________ | |
SOLUTION | |
______________________________________________________ | |
function telephoneCheck(str) { | |
// Good luck! | |
var regex = /^(1\s?)?(\(\d{3}\)|\d{3})[\s\-]?\d{3}[\s\-]?\d{4}$/; | |
return regex.test(str); | |
} | |
telephoneCheck("1 555 555 5555"); | |
______________________________________________________ | |
EXPLANATION | |
______________________________________________________ | |
^ matches the beginning of our string | |
(1\s?)? means optional "1", followed or not followed by a space (here, '?' stands for "optional") | |
(\(\d{3}\)|\d{3}) means three digits, inside paranthesis or (|) three digits without paranthesis | |
[\s\-]? means optional space or dash | |
$ matches end of input (so that there is nothing after the last four digits) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment