Files

6.1 KiB
Raw Blame History

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
aff0395860f5d3034dc0bfc9 Валідатор телефонного номеру 5 16090 telephone-number-validator

--description--

Повернути true, якщо надісланий рядок виглядає як дійсний номер телефону США.

Користувач може заповнити поле форми в будь-який спосіб, тільки якщо він має формат дійсного номера США. Нижче наведені приклади припустимих форматів для номерів телефону США (для інших варіантів, зверніться до тестів нижче):

555-555-5555
(555)555-5555
(555) 555-5555
555 555 5555
5555555555
1 555 555 5555

У цьому завданні вам буде дано рядок, наприклад 800-692-7753 або 8oo-six427676;laskdjf. Ваше завдання - підтвердити або визнати недійсним номер телефону США на основі будь-якої комбінації форматів, наданих вище. Телефонний код міста є обов'язковим. Якщо введено телефонний код країни, необхідно підтвердити, що телефонний код країни - 1. Повернути true, якщо рядок є дійсним номером телефону США; в іншому випадку, повернути false.

--hints--

telephoneCheck("555-555-5555") повинен повертатися як булеве значення.

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

telephoneCheck("1 555-555-5555") повинен повертатися як true.

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

telephoneCheck("1 (555) 555-5555") повинен повертатися як true.

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

telephoneCheck("5555555555") повинен повертатися як true.

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

telephoneCheck("555-555-5555") повинен повертатися як true.

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

telephoneCheck("(555)555-5555") повинен повертатися як true.

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

telephoneCheck("1(555)555-5555") повинен повертатися як true.

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

telephoneCheck("555-5555") повинен повертатися як false.

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

telephoneCheck("5555555") повинен повертатися як false.

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

telephoneCheck("1 555)555-5555") повинен повертатися як false.

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

telephoneCheck("1 555 555 5555") повинен повертатися як true.

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

telephoneCheck("1 456 789 4444") повинен повертатися як true.

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

telephoneCheck("123**&!!asdf#") повинен повертатися як false.

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

telephoneCheck("55555555") повинен повертатися як false.

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

telephoneCheck("(6054756961)") повинен повертатися як false.

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

telephoneCheck("2 (757) 622-7382") повинен повертатися як false.

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

telephoneCheck("0 (757) 622-7382") повинен повертатися як false.

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

telephoneCheck("-1 (757) 622-7382") повинен повертатися як false.

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

telephoneCheck("2 757 622-7382") повинен повертатися як false.

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

telephoneCheck("10 (757) 622-7382") повинен повертатися як false.

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

telephoneCheck("27576227382") повинен повертатися як false.

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

telephoneCheck("(275)76227382") повинен повертатися як false.

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

telephoneCheck("2(757)6227382") повинен повертатися як false.

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

telephoneCheck("2(757)622-7382") повинен повертатися як false.

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

telephoneCheck("555)-555-5555") повинен повертатися як false.

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

telephoneCheck("(555-555-5555") повинен повертатися як false.

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

telephoneCheck("(555)5(55?)-5555") повинен повертатися як false.

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

telephoneCheck("55 55-55-555-5") повинен повертатися як false.

assert(telephoneCheck('55 55-55-555-5') === 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");