Codifico algo en React y quiero usar Regex para poner en mayúscula la primera letra de la palabra más de 3 letras con Regex, pero estoy perdido con Regex, encontré muchas cosas pero nada funciona. ¿Algún consejo?
Ejemplo de expresión regular pero no funciona
"^[az](?=[a-zA-Z'-]{3})|\b[a-zA-Z](?=[a-zA-Z'-]{3,}$)|['-][az]"\w{4,} - esta expresión regular coincidirá con todas las palabras que tengan más de 3 letras
let str = "this is Just an long string with long and short words"; const matches = str.matchAll(/\w{4,}/g); for(match of matches) { str = str.substring(0, match.index) + match[0].charAt(0).toUpperCase() + match[0].slice(1) + str.substring(match.index + match[0].length); } console.log(str);Aquí hay dos ejemplos. Una para oraciones (como la respuesta de AidOnline01, pero usando String#replaceAll ) y una segunda cuando se usan solo palabras.
Sin embargo, cuando usa solo palabras, también puede verificar la length en lugar de usar una expresión regular.
const sentence = "This is a sentence with a few words which should be capitialized"; const word = "capitialized"; // use String#replaceAll to replace all words in a sentence const sentenceResult = sentence.replaceAll(/\w{4,}/g, word => word[0].toUpperCase() + word.slice(1)); // use String#replace for a single word const wordResult = word.replace(/\w{4,}/, word => word[0].toUpperCase() + word.slice(1)); console.log(sentenceResult); console.log(wordResult);