Oliver Eyton-Williams ee1e8abd87
feat(curriculum): restore seed + solution to Chinese (#40683)
* feat(tools): add seed/solution restore script

* chore(curriculum): remove empty sections' markers

* chore(curriculum): add seed + solution to Chinese

* chore: remove old formatter

* fix: update getChallenges

parse translated challenges separately, without reference to the source

* chore(curriculum): add dashedName to English

* chore(curriculum): add dashedName to Chinese

* refactor: remove unused challenge property 'name'

* fix: relax dashedName requirement

* fix: stray tag

Remove stray `pre` tag from challenge file.

Signed-off-by: nhcarrigan <nhcarrigan@gmail.com>

Co-authored-by: nhcarrigan <nhcarrigan@gmail.com>
2021-01-12 19:31:00 -07:00

4.5 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
aff0395860f5d3034dc0bfc9 Telephone Number Validator 5 16090 telephone-number-validator

--description--

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.

--hints--

telephoneCheck("555-555-5555") should return a boolean.

assert(typeof telephoneCheck('555-555-5555') === 'boolean');

telephoneCheck("1 555-555-5555") should return true.

assert(telephoneCheck('1 555-555-5555') === true);

telephoneCheck("1 (555) 555-5555") should return true.

assert(telephoneCheck('1 (555) 555-5555') === true);

telephoneCheck("5555555555") should return true.

assert(telephoneCheck('5555555555') === true);

telephoneCheck("555-555-5555") should return true.

assert(telephoneCheck('555-555-5555') === true);

telephoneCheck("(555)555-5555") should return true.

assert(telephoneCheck('(555)555-5555') === true);

telephoneCheck("1(555)555-5555") should return true.

assert(telephoneCheck('1(555)555-5555') === true);

telephoneCheck("555-5555") should return false.

assert(telephoneCheck('555-5555') === false);

telephoneCheck("5555555") should return false.

assert(telephoneCheck('5555555') === false);

telephoneCheck("1 555)555-5555") should return false.

assert(telephoneCheck('1 555)555-5555') === false);

telephoneCheck("1 555 555 5555") should return true.

assert(telephoneCheck('1 555 555 5555') === true);

telephoneCheck("1 456 789 4444") should return true.

assert(telephoneCheck('1 456 789 4444') === true);

telephoneCheck("123**&!!asdf#") should return false.

assert(telephoneCheck('123**&!!asdf#') === false);

telephoneCheck("55555555") should return false.

assert(telephoneCheck('55555555') === false);

telephoneCheck("(6054756961)") should return false

assert(telephoneCheck('(6054756961)') === false);

telephoneCheck("2 (757) 622-7382") should return false.

assert(telephoneCheck('2 (757) 622-7382') === false);

telephoneCheck("0 (757) 622-7382") should return false.

assert(telephoneCheck('0 (757) 622-7382') === false);

telephoneCheck("-1 (757) 622-7382") should return false

assert(telephoneCheck('-1 (757) 622-7382') === false);

telephoneCheck("2 757 622-7382") should return false.

assert(telephoneCheck('2 757 622-7382') === false);

telephoneCheck("10 (757) 622-7382") should return false.

assert(telephoneCheck('10 (757) 622-7382') === false);

telephoneCheck("27576227382") should return false.

assert(telephoneCheck('27576227382') === false);

telephoneCheck("(275)76227382") should return false.

assert(telephoneCheck('(275)76227382') === false);

telephoneCheck("2(757)6227382") should return false.

assert(telephoneCheck('2(757)6227382') === false);

telephoneCheck("2(757)622-7382") should return false.

assert(telephoneCheck('2(757)622-7382') === false);

telephoneCheck("555)-555-5555") should return false.

assert(telephoneCheck('555)-555-5555') === false);

telephoneCheck("(555-555-5555") should return false.

assert(telephoneCheck('(555-555-5555') === false);

telephoneCheck("(555)5(55?)-5555") should return false.

assert(telephoneCheck('(555)5(55?)-5555') === false);

--seed--

--seed-contents--

function telephoneCheck(str) {
  return true;
}

telephoneCheck("555-555-5555");

--solutions--

var re = /^([+]?1[\s]?)?((?:[(](?:[2-9]1[02-9]|[2-9][02-8][0-9])[)][\s]?)|(?:(?:[2-9]1[02-9]|[2-9][02-8][0-9])[\s.-]?)){1}([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2}[\s.-]?){1}([0-9]{4}){1}$/;

function telephoneCheck(str) {
  return re.test(str);
}

telephoneCheck("555-555-5555");