Tengo la siguiente expresión regular de JavaScript que escribe en mayúscula el primer carácter de la mayoría de las palabras, excepto algunas excepciones:
Hay dos problemas con esta expresión regular que no he resuelto. La primera letra siempre debe estar en mayúscula. La segunda letra de cada palabra debe ser minúscula.
Aquí hay un ejemplo de cómo está funcionando:
function capitalizeFirst(str) { return str.replace(/(?!^)\b(?!(?:of|the)\b)([az])/g, m => m.toUpperCase()); } console.log(capitalizeFirst('the fox JUMP off of THE street'));Donde debería estar devolviendo esto: ('de' y 'el' deben estar en minúsculas excepto si es la primera palabra). También se debe poner en minúsculas el resto de la palabra:
El zorro saltando de la calle
No pude encontrar una respuesta a esta pregunta específica durante una búsqueda.
Pude encontrar la solución. Esta es una explicación de la solución:
https://regex101.com/ function capitalizeFirst(str) { return str.toLowerCase() .replace(/\b(?!(?!^)(?:of|the)\b)([az])/g, m => m.toUpperCase()); } console.log(capitalizeFirst('the fox JUMP off of THE street'));