--- id: aff0395860f5d3034dc0bfc9 title: Validador de números telefónicos challengeType: 5 forumTopicId: 16090 dashedName: telephone-number-validator --- # --description-- Devuelve `true` si la cadena pasada concuerda con un número de teléfono válido en Estados Unidos. El usuario puede completar el campo del formulario de la forma que elija, siempre que tenga el formato de un número estadounidense válido. Los siguientes ejemplos son de formatos válidos para números estadounidenses (consulte las pruebas a continuación para otras variantes):
555-555-5555
(555)555-5555
(555) 555-5555
555 555 5555
5555555555
1 555 555 5555
Para este desafío se te presentará una cadena como `800-692-7753` o `8oo-six427676;laskdjf`. Tu trabajo es validar o rechazar el número de teléfono estadounidense basado en cualquier combinación de los formatos proporcionados arriba. El código de área es obligatorio. Si el código de país es proporcionado, debes confirmar que el código de país es `1`. Devuelve `true` si la cadena es un número de teléfono estadounidense valido; de lo contrario devuelve `false`. # --hints-- `telephoneCheck("555-555-5555")` debe devolver un booleano. ```js assert(typeof telephoneCheck('555-555-5555') === 'boolean'); ``` `telephoneCheck("1 555-555-5555")` debe devolver `true`. ```js assert(telephoneCheck('1 555-555-5555') === true); ``` `telephoneCheck("1 (555) 555-5555")` debe devolver `true`. ```js assert(telephoneCheck('1 (555) 555-5555') === true); ``` `telephoneCheck("5555555555")` debe devolver `true`. ```js assert(telephoneCheck('5555555555') === true); ``` `telephoneCheck("555-555-5555")` debe devolver `true`. ```js assert(telephoneCheck('555-555-5555') === true); ``` `telephoneCheck("(555)555-5555")` debe devolver `true`. ```js assert(telephoneCheck('(555)555-5555') === true); ``` `telephoneCheck("1(555)555-5555")` debe devolver `true`. ```js assert(telephoneCheck('1(555)555-5555') === true); ``` `telephoneCheck("555-5555")` debe devolver `false`. ```js assert(telephoneCheck('555-5555') === false); ``` `telephoneCheck("5555555")` debe devolver `false`. ```js assert(telephoneCheck('5555555') === false); ``` `telephoneCheck("1 555)555-5555")` debe devolver `false`. ```js assert(telephoneCheck('1 555)555-5555') === false); ``` `telephoneCheck("1 555 555 5555")` debe devolver `true`. ```js assert(telephoneCheck('1 555 555 5555') === true); ``` `telephoneCheck("1 456 789 4444")` debe devolver `true`. ```js assert(telephoneCheck('1 456 789 4444') === true); ``` `telephoneCheck("123**&!!asdf#")` debe devolver `false`. ```js assert(telephoneCheck('123**&!!asdf#') === false); ``` `telephoneCheck("55555555")` debe devolver `false`. ```js assert(telephoneCheck('55555555') === false); ``` `telephoneCheck("(6054756961)")` debe devolver `false`. ```js assert(telephoneCheck('(6054756961)') === false); ``` `telephoneCheck("2 (757) 622-7382")` debe devolver `false`. ```js assert(telephoneCheck('2 (757) 622-7382') === false); ``` `telephoneCheck("0 (757) 622-7382")` debe devolver `false`. ```js assert(telephoneCheck('0 (757) 622-7382') === false); ``` `telephoneCheck("-1 (757) 622-7382")` debe devolver `false`. ```js assert(telephoneCheck('-1 (757) 622-7382') === false); ``` `telephoneCheck("2 757 622-7382")` debe devolver `false`. ```js assert(telephoneCheck('2 757 622-7382') === false); ``` `telephoneCheck("10 (757) 622-7382")` debe devolver `false`. ```js assert(telephoneCheck('10 (757) 622-7382') === false); ``` `telephoneCheck("27576227382")` debe devolver `false`. ```js assert(telephoneCheck('27576227382') === false); ``` `telephoneCheck("(275)76227382")` debe devolver `false`. ```js assert(telephoneCheck('(275)76227382') === false); ``` `telephoneCheck("2(757)6227382")` debe devolver `false`. ```js assert(telephoneCheck('2(757)6227382') === false); ``` `telephoneCheck("2(757)622-7382")` debe devolver `false`. ```js assert(telephoneCheck('2(757)622-7382') === false); ``` `telephoneCheck("555)-555-5555")` debe devolver `false`. ```js assert(telephoneCheck('555)-555-5555') === false); ``` `telephoneCheck("(555-555-5555")` debe devolver `false`. ```js assert(telephoneCheck('(555-555-5555') === false); ``` `telephoneCheck("(555)5(55?)-5555")` debe devolver `false`. ```js assert(telephoneCheck('(555)5(55?)-5555') === false); ``` `telephoneCheck("55 55-55-555-5")` debe devolver `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"); ```