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

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

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 Report

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 Report

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 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!