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

143
Vistas
Cómo dividir palabras sin espacios en una oración en la que cada palabra comience con letra mayúscula usando Javascript

Dada una cadena como esta "HowToMakeALiving", quiero dividirla y convertirla en "Cómo ganarse la vida". Otra situación es "howToMakeALiving", por lo que la primera palabra "how" no comienza con mayúscula mientras que otras palabras comienzan con mayúscula y todavía quiero dividirla y generar "Cómo ganarse la vida".

Hay algunas preguntas en la comunidad, pero rara vez están relacionadas con JS o necesitan usar paquetes, y su situación es más complicada, la cadena dada está en minúsculas.

Entonces, la pregunta es ¿cómo puedo hacer eso mediante expresiones regulares en Javascript o cualquier otro método mejor?

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

0

Podrías usar una expresión regular:

 function splitWords(s) { return s.match(/.[^AZ]*/g).map((word, i) => (i ? word[0].toLowerCase() : word[0].toUpperCase()) + word.slice(1) ).join(" "); } let words = splitWords("howToMakeALiving"); console.log(words); words = splitWords("WhyIHadMyDNATakenInParis"); console.log(words);

La expresión regular busca cualquier carácter ( . ) seguido de una serie de caracteres que no sean mayúsculas. Cada hallazgo es una palabra.

El bucle distingue entre la primera palabra ( i == 0 ) y otras palabras ( i es veraz). El primer carácter de cada palabra se convierte en mayúsculas (primera palabra) o en minúsculas (todas las demás palabras).

Finalmente, las palabras se unen en una frase uniéndolas con un espacio como separador.

Alternativa para abreviaturas en mayúsculas

Si es necesario capturar abreviaturas como "DNA" y el pronombre personal "I", podría:

  • Haz una comparación explícita con "yo", de tal forma que siempre se ponga en mayúscula.
  • Solo separe una palabra cuando haya como máximo una mayúscula más después del salto; puede usar una expresión regular con funciones de anticipación.

 function splitWords(s) { return s.match(/.([^AZ]+|.*?(?=[AZ]([^AZ]|$)|$))/g).map((word, i) => (i && word !== "I" && (word.length < 2 || word[1] != word[1].toUpperCase()) ? word[0].toLowerCase() : word[0].toUpperCase() ) + word.slice(1) ).join(" "); } let words = splitWords("howToMakeALiving"); console.log(words); words = splitWords("WhyIHadMyDNATakenInParis"); console.log(words); words = splitWords("iHateHavingADNATestTaken"); console.log(words);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Opción 1: Haría esto con el método de compilación .match() como este:

 let textvalue = 'howToMakeALiving' let splitdata = textvalue.match(/[AZ][az]+|[0-9]+/g).join(" ") console.log(splitdata)

Opción 2: puede usar el método string.split() que también admite expresiones regulares, se puede lograr así

 let textvalue = 'howToMakeALiving' let splitdata = textvalue.split(/(?=[AZ])/); console.log(splitdata)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Intente esto, puede tener un error o dos, pero lo enviará por el camino correcto.

 var res = ''; var chars = 'HowToMakeALiving'.split(); var lastChar = ''; for (var i = 0; i < chars.length; i++) { if (lastChar = '') lastChar = chars[i]; if (chars[i].toUpperCase() != chars[i] && lastChar.toUpperCase() != lastChar) res = res + ' '; res = res + chars[i]; } console.log(res)

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