212 lines
6.1 KiB
Markdown
212 lines
6.1 KiB
Markdown
![]() |
---
|
|||
|
id: aff0395860f5d3034dc0bfc9
|
|||
|
title: Валідатор телефонного номеру
|
|||
|
challengeType: 5
|
|||
|
forumTopicId: 16090
|
|||
|
dashedName: telephone-number-validator
|
|||
|
---
|
|||
|
|
|||
|
# --description--
|
|||
|
|
|||
|
Повернути `true`, якщо надісланий рядок виглядає як дійсний номер телефону США.
|
|||
|
|
|||
|
Користувач може заповнити поле форми в будь-який спосіб, тільки якщо він має формат дійсного номера США. Нижче наведені приклади припустимих форматів для номерів телефону США (для інших варіантів, зверніться до тестів нижче):
|
|||
|
|
|||
|
<blockquote>555-555-5555<br>(555)555-5555<br>(555) 555-5555<br>555 555 5555<br>5555555555<br>1 555 555 5555</blockquote>
|
|||
|
|
|||
|
У цьому завданні вам буде дано рядок, наприклад `800-692-7753` або `8oo-six427676;laskdjf`. Ваше завдання - підтвердити або визнати недійсним номер телефону США на основі будь-якої комбінації форматів, наданих вище. Телефонний код міста є обов'язковим. Якщо введено телефонний код країни, необхідно підтвердити, що телефонний код країни - `1`. Повернути `true`, якщо рядок є дійсним номером телефону США; в іншому випадку, повернути `false`.
|
|||
|
|
|||
|
# --hints--
|
|||
|
|
|||
|
`telephoneCheck("555-555-5555")` повинен повертатися як булеве значення.
|
|||
|
|
|||
|
```js
|
|||
|
assert(typeof telephoneCheck('555-555-5555') === 'boolean');
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("1 555-555-5555")` повинен повертатися як `true`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('1 555-555-5555') === true);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("1 (555) 555-5555")` повинен повертатися як `true`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('1 (555) 555-5555') === true);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("5555555555")` повинен повертатися як `true`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('5555555555') === true);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("555-555-5555")` повинен повертатися як `true`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('555-555-5555') === true);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("(555)555-5555")` повинен повертатися як `true`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('(555)555-5555') === true);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("1(555)555-5555")` повинен повертатися як `true`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('1(555)555-5555') === true);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("555-5555")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('555-5555') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("5555555")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('5555555') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("1 555)555-5555")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('1 555)555-5555') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("1 555 555 5555")` повинен повертатися як `true`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('1 555 555 5555') === true);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("1 456 789 4444")` повинен повертатися як `true`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('1 456 789 4444') === true);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("123**&!!asdf#")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('123**&!!asdf#') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("55555555")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('55555555') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("(6054756961)")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('(6054756961)') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("2 (757) 622-7382")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('2 (757) 622-7382') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("0 (757) 622-7382")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('0 (757) 622-7382') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("-1 (757) 622-7382")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('-1 (757) 622-7382') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("2 757 622-7382")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('2 757 622-7382') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("10 (757) 622-7382")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('10 (757) 622-7382') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("27576227382")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('27576227382') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("(275)76227382")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('(275)76227382') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("2(757)6227382")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('2(757)6227382') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("2(757)622-7382")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('2(757)622-7382') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("555)-555-5555")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('555)-555-5555') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("(555-555-5555")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('(555-555-5555') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("(555)5(55?)-5555")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('(555)5(55?)-5555') === false);
|
|||
|
```
|
|||
|
|
|||
|
`telephoneCheck("55 55-55-555-5")` повинен повертатися як `false`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(telephoneCheck('55 55-55-555-5') === false);
|
|||
|
```
|
|||
|
|
|||
|
# --seed--
|
|||
|
|
|||
|
## --seed-contents--
|
|||
|
|
|||
|
```js
|
|||
|
function telephoneCheck(str) {
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
telephoneCheck("555-555-5555");
|
|||
|
```
|
|||
|
|
|||
|
# --solutions--
|
|||
|
|
|||
|
```js
|
|||
|
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");
|
|||
|
```
|