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

97
Vistas
¿Cómo titular una cadena con algunas excepciones de palabras excluidas y cómo colapsar/recortar secuencias de espacios en blanco adicionales también?

No he trabajado mucho con expresiones regulares y me estoy atascando. Estoy tratando de tomar una cadena y convertirla en caso de título, pero con algunas excepciones. También quiero eliminar cualquier espacio en blanco.

Actualmente está eliminando los espacios en blanco y el caso del título funciona, pero no sigue las excepciones. ¿Hay alguna manera de combinar la variable "título" con la variable "regex" y hacer que las excepciones funcionen?

 const toTitleCase = str => { const title = str.replace(/\s\s+/g, ' '); const regex = /(^|\b(?!(AC | HVAC)\b))\w+/g; const updatedTitle = title .toLowerCase() .replace(regex, (s) => s[0].toUpperCase() + s.slice(1)); return updatedTitle; } console.log(toTitleCase(`this is an HVAC AC converter`))

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

0

Del comentario anterior...

"Parece que el OP quiere excluir las palabras 'AC' y 'HVAC' del reemplazo de mayúsculas y minúsculas. Un patrón que lograría esto es, por ejemplo, \b(?!HVAC|AC)(?<upper>[\w])(?<lower>[\w]+)\b "

El código que cubre todos los requisitos del OP podría parecerse al siguiente ejemplo...

 function toTitleCase(value) { return String(value) .trim() .replace(/\s+/g, ' ') .replace( /\b(?!HVAC|AC)(?<upper>[\w])(?<lower>[\w]+)\b/g, (match, upper, lower) => `${ upper.toUpperCase() }${ lower.toLowerCase() }`, ); } console.log( "toTitleCase(' This is an HVAC AC converter. ') ...", `'${ toTitleCase(' This is an HVAC AC converter. ') }'` );
 .as-console-wrapper { min-height: 100%!important; top: 0; }

Se podría llevar el enfoque anterior un paso más allá proporcionando las palabras que se excluirán como parámetro(s) adicional(es)...

 function toTitleCase(value, ...exludedWordList) { const exceptions = exludedWordList .flat(Infinity) .map(item => String(item).trim()) .join('|'); return String(value) .trim() .replace(/\s+/g, ' ') .replace( RegExp(`\\b(?!${ exceptions })(?<upper>[\\w])(?<lower>[\\w]+)\\b`, 'g'), (match, upper, lower) => `${ upper.toUpperCase() }${ lower.toLowerCase() }`, ); } console.log( "toTitleCase(' this is an HVAC AC converter. ', ['AC', 'HVAC']) ...", `'${ toTitleCase(' this is an HVAC AC converter. ', ['AC', 'HVAC']) }'` ); console.log( "toTitleCase(' this is an HVAC AC converter. ', 'is', 'an', 'converter') ...", `'${ toTitleCase(' this is an HVAC AC converter. ', 'is', 'an', 'converter') }'` );
 .as-console-wrapper { min-height: 100%!important; top: 0; }

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