Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

87
Vistas
Entrada de validación nombre completo

Hay una tarea: El campo "Nombre Apellido" solo puede constar de 2 palabras (nombre y apellido). La longitud mínima de cada palabra es de 3 caracteres, 30 como máximo. Solo hay 1 espacio entre palabras.

El problema es que después de la primera palabra, cuando pones un espacio, ya devuelve verdadero. ¿Por qué? ¿Y cómo verificar el 1 espacio en esta entrada?

 const validateInput = (value) => { const lengthValue = value.split(' ').length if (lengthValue !== 2) { return false } else { return value.split(' ').filter(el => el.length > 3 && el.length <= 30) ? value.search(/[A-Za-z]+(\s+[A-Za-z]+)?/gi) !== -1 ? true : false : '' } }

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

  • Use recorte para eliminar espacios alrededor de las palabras antes de probar
  • No hay necesidad de más después de una devolución. También facilita la lectura
  • ¿Por qué estás probando las palabras en el nombre de espacios en blanco? Eso solo funciona si el usuario pegó una nueva línea o una pestaña, ya que se divide en el espacio
  • Tienes un ternario anidado, ¿por qué devolverías una cadena vacía allí?

También lea esto para conocer las futuras falsedades que los programadores creen sobre los nombres.

 const re = /[A-Za-z]{3,30}/; const validateInput = (value) => { const val = value.trim(); if (val === "") return false; const arr = value.split(' '); if (arr.length != 2) return false; const [firstName, lastName] = arr; return re.test(firstName) && re.test(lastName); // we could use .every here but you only have two } console.log(validateInput("Hans Anders")); console.log(validateInput("Prince")); console.log(validateInput("X Æ A-12")); console.log(validateInput(" A "));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede verificar si el no. de palabras son menos de dos y la longitud de todas las palabras se encuentra dentro del rango especificado.

 const message = document.querySelector("small"); document.querySelector("input").addEventListener("keyup", (e) => { const isValid = validateInput(e.target.value); if (isValid) { message.textContent = "Valid input"; } else { message.textContent = "Invalid input"; } }); const validateInput = (input) => { const words = input.split(" "); return words.length <= 2 && words.every((w) => /^[A-Za-z]{3,30}$/.test(w)); };
 <div> <label> Name: <input type="text" /> </label> </div> <small>Invalid input</small>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda