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

150
Vistas
Javascript Poner en mayúscula la primera letra de cada palabra ignorar las contracciones

Estoy tratando de poner en mayúscula la primera letra de cada palabra en una cadena. Encontré preguntas similares en línea, pero ninguna parece responder a mi pregunta de ignorar las contracciones como can't, won't, wasnt.

Este fragmento de código funciona pero también escribe en mayúscula la letra después del apóstrofe en la contracción.

 var str = str.replace(/\b\w/g, w => w.toUpperCase())

Si la cadena contiene una contracción como can't o won't, generará Can'T o Won'T.

¿Hay alguna forma de ignorar los apóstrofes que están en medio de una palabra? Todavía quiero poner en mayúsculas las palabras que están separadas por otros signos de puntuación. Por ejemplo:

  • este_es_un_ejemplo -> Este_es_un_ejemplo
  • esto/es/un/ejemplo -> Esto/es/un/ejemplo
  • esto, es, un, ejemplo -> Esto, es, un, ejemplo
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Puedes usar

 const texts = ["this_can't_be_an_example", 'this/is/an/example', 'this,is,an,example'] for (const text of texts) { console.log(text, '=>', text.replace(/([\W_]|^)(\w)(?<!\w'\w)/g, (_, x,y) => `${x}${y.toUpperCase()}` )) }

Vea la demostración de expresiones regulares . Detalles :

  • ([\W_]|^) - Grupo 1 ( x ): un carácter no alfanumérico o inicio de cadena
  • (\w) - Grupo 2 ( y ): una palabra char
  • (?<!\w'\w) - una mirada negativa hacia atrás que asegura que el valor del Grupo 2 no esté precedido por una palabra char y un ' .
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede usar una mirada hacia atrás negativa para asegurarse de que no haya una apostrofia antes del límite de la palabra. (?:\b|(?<=_)) busca un límite de palabra o un guión bajo antes de la palabra.

 const examples = [ "can't", "this-is-an-example", "this.is.an.example", "this/is/an/example", "this_is_an_example", "this,is,an,example", ]; examples.forEach(example => { console.log(example.replace(/(?<!')(?:\b|(?<=_))\w/g, w => w.toUpperCase())); });

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esta RegExp detecta

  • primer símbolo
  • Subrayar
  • Espacio
  • / símbolo
  • Coma
  • Apóstrofe

Simplemente agregue símbolos de necesidad en la lista con | separador

 str.replace(/((^|_| |\/|,|')\w)/g, w => w.toUpperCase());
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