Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

90
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!