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

129
Vistas
Camel case to Title case no funciona para la primera letra

Necesito convertir la cadena dada en mayúsculas y minúsculas, sin importar si la entrada es minúscula o mayúscula

memberships 1 - contactGroupMembership - contactGroupId debe devolver Memberships 1 - Contact Group Membership - Contact Group Id

Memberships1 memberships1-contactGroupMembership-contactGroupId debe devolver Memberships 1 - Contact Group Membership - Contact Group Id

he probado con

 str.replace(/([AZ]+)/g, " $1").replace(/([AZ][az])/g, " $1");
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puede usar esta solución de 2 pasos para su caso:

 input = ['memberships 1 - contactGroupMembership - contactGroupId', 'memberships1-contactGroupMembership-contactGroupId']; const re1 = /\B(?:[AZ]|\d)|\b-\b|(?<=-)[az]/g; const re2 = /\b[az]/g; var repl = []; input.forEach(str => { repl.push(str .replace(re1, ' $&') .replace(re2, m => m.toUpperCase()) ); }); console.log(repl);

Explicación:

  • En el primer .replace insertamos espacio en los lugares deseados usando la primera expresión regular:

     \B(?:[AZ]|\d)|\b-\b|(?<=-)[az]

Esto coincide con un límite que no es una palabra seguido de una letra mayúscula o un dígito o un - que está rodeado de límites de palabras en ambos lados o una letra minúscula que debe ir precedida de un - . Demostración RegEx 1

  • En el segundo paso, hacemos coincidir las letras minúsculas después de un límite de palabra y las convertimos en mayúsculas.
about 4 years ago · Juan Pablo Isaza Denunciar

0

Muy específico para este caso de usuario, pero también puede usar una función de reemplazo para escribir en mayúsculas el primer carácter de una palabra o la primera letra mayúscula: str.replace(/(\b[az])|([AZ]+)/g, (m,p1,p2)=> (p1 ? '' : ' ') + (p1 || p2).toUpperCase());

trabajando: se encuentra el principio de la palabra (usado en p1 ) o la primera mayúscula ( p2 ). La función de reemplazo pone en mayúsculas las coincidencias y agrega el espacio adicional solo si no es una coincidencia p1

Manifestación:

 let str = 'memberships 1 - contactGroupMembership - contactGroupId'; str = str.replace(/(\b[az])|([AZ]+)/g, (m,p1,p2)=> (p1 ? '' : ' ') + (p1 || p2).toUpperCase()); console.log(str);

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