30 noviembre, 2023

APLICAR MAYÚSCULAS, MINÚSCULAS Y NOMBRE PROPIO A UNA CADENA DE TEXTO CON TYPESCRIPT

Hola a todos!

La semana pasada, aunque tenía una publicación preparada, al final no pude sacar el post.

El tema del post de hoy es cómo aplicar a una cadena de texto: mayúsculas, minúsculas y nombre propio en Typescript. Para hacer el ejemplo he construido una UDF con una salida matricial para mostrar el resultado de las tres funciones a la vez.

Veamos el ejemplo:

Convertiremos este contenido en mayúsculas, nombre propio y minúsculas. Obviamente en minúsculas quedará igual.

El código que vamos a aplicar es el siguiente:

/**
* @customfunction
* @returns {number[][] }
 */
function convertirCadena(miCadena: string) {
  //Convertimos la variable nomPropio
  var nomProp = miCadena.toLowerCase().split(' ');
  for (var i = 0; i < nomProp.length; i++) {
    nomProp[i] = nomProp[i].charAt(0).toUpperCase() + nomProp[i].substring(1);
  }
  //creamos títulos de columna
  var titulos = ['PASAR A MAYÚSCULAS', 'PASAR A NOMBRE PROPIO', 'PASAR A MINÚSCULAS']
  // aplicamos todas las funciones
  var frase = [miCadena.toUpperCase(), nomProp.join(' '), miCadena.toLowerCase()]
  //pasamos los datos a la función
  return [titulos, frase]
}

En el caso de las funciones Mayúsculas y Minúsculas existe una función en typescript, es .toUpperCase() y .toLowerCase() respectivamente. Pero ¿Qué ocurre con NomPropio?, pues que no tenemos función nativa y por lo tengo tenemos que componerla. Existen muchas formas y métodos para hacerlo, pero a mí particularmente me gusta la idea de hacerlo mediante un loop que recorra la cadena e identifique la primera letra de cada letra y la convierta en mayúscula:

var nomProp = miCadena.toLowerCase().split(' ');
  for (var i = 0; i < nomProp.length; i++) {
    nomProp[i] = nomProp[i].charAt(0).toUpperCase() + nomProp[i].substring(1);
  }

La salida de este loop la uniremos con la función .join(' ') para obtener el resultado completo.

Finalmente, retornamos resultado compuesto por tres títulos de columna y el resultado de cada uno debajo.

El resultado es el esperado. Además la función nomProp se podría modificar según nuestras necesidades. Otra forma de conseguir el mismo resultado pero con una función de flecha sería así:

var nomProp = miCadena.split(' ')
    .map(nomProp => nomProp[0].toUpperCase() + nomProp.substring(1).toLowerCase()).join(' ');

Y esto es todo, espero que haya resultado interesante!!.

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies