Bruno R

Metodos utiles de Strings

x
portfolio-next-l5vb64p5k-bandikyu.vercel.app

La mayoria de las cosas en javascript son objetos. Cuando se crea una variable usando ⇒

let string1 = 'This is my string';

esta variable se convierte en una instancia de objeto de cadena, por lo que tiene disponible una gran cantidad de propiedades y metodos que se pueden utilizar para manipular esta informacion. Metodos, Propiedades, y porque no el constructor.

Encontrar la longitud de un string

Esto se logra usando la propiedad length ⇒

let browserType = 'mozilla';
browserType.length;
//output 7 (tipo de dato number)

Recuperar un caracter de cadena especifico

Tambien se puede devolver cualquier caracter de una cadena mediante el uso de notacion de "corchetes cuadrados" [] al final del string (o contenedor de este tipo de dato). Dentro de los corchetes se incluye el numero del caracter en la cadena. Ej ⇒

browserType[0]; //esto me devuelve el primer caracter
browserType[browserType.length-1]; //esto me devuelve el ultimo caracter

Encontrar un substring dentro de un string y extraerlo

Para lograr buscar un substring dentro de un string se utiliza el metodo .indexOf('x'), al que se le agrega un unico parametro y es el nombre de la subcadena que deseamos buscar.

Como resultado recibimos el numero donde se encuentra el primer caracter del substring, en el caso de que no exista, nos retorna -1.

En este caso
Lo del punto anterior se puede hacer de otra forma, incluso mas eficaz.
Una vez que se sabe donde comienza y sabe en que caracter desea que termine, se puede utilizar

Cambio de fase (mayuscula/minuscula)

Los metodos de cadena toUpperCase() y toLowerCase() toman un string y lo convierten a mayuscula o minuscula respectivamente. Sumamente util para normalizar los datos antes de guardarlos en una base de datos. Ej ⇒

let radData = 'My NaMe Is MuD';
radData.toLowerCase(); //output "my name is mud"
radData.toUpperCase(); //output "MY NAME IS MUD"

Actualizar partes de una cadena

Tambien se pueden remplazar un substring por otro en el string principal, mediante el metodo replace(). Segun parece es un comando basico pero se pueden hacer cosas muy avanzadas con el que voy a ir actualizando con el tiempo.

Para utilizar este metodo se necesitan dos parametros, el primero es el nombre del substring que se cambiara por el texto del segundo parametro. Ej ⇒

let browserType = 'mozilla';
browserType.replace('moz','van');
//output 'vanilla'

Filtrado de mensaje

const list = document.querySelector('.output ul');//selecciono el elemento HTML
list.innerHTML = '';//no se para que puso un texto vacio el elemento

let greetings = ['Happy Birthday!', //esto es el array con todos los strings
                 'Merry Christmas my love',
                 'A happy Christmas to all the family',
                 'You\'re all I want for Christmas',
                 'Get well soon']; 
/*el for de abajo esta haciendo un bucle que se repetira hasta 
llega al numero de valores dentro del array y para cada valor se 
ejecuta las instrucciones del bloque del bucle*/
for (let i = 0; i < greetings.length; i++) {
  let input = greetings[i]; //esto es una variable que toma el arreglo de arriba y muestra cada valor uno de sus valores (al cambiar su numero "i")
  let searchString = ""; //esto es algo que invente para colocar la palabra que quiera buscar

/*en la declaracion del if de abajo tenemos que el metodo indexOf
esta buscando un substring en el parrafo i (cualquiera de los de arriba), 
si este substring no esta, el valor por defecto del metodo sera -1
haciendo que la comparacion !== (estrictamente diferente) sea falso, porque son 
iguales, el codigo de la condicional no se cumple. Por otro lado si el substring esta
en el parrafo el valor no sera -1 haciendo que la comparacion sea true ejecutando el codigo */
  if (greetings[i].indexOf(searchString) !== -1 ) {
    let listItem = document.createElement('li'); //crea una variable creadora de elementos (en este caso 'li')
    listItem.textContent = input; //al li creado se le agrega por medio del textContent el parrafo del array
    list.appendChild(listItem); //y aca al elemento seleccionado le anidamos el nuevo elemento li con el parrafo correspondiente.
  }
}

Arreglar las mayusculas

const list = document.querySelector('.output ul');
list.innerHTML = '';
let cities = ['lonDon', 'ManCHESTer', 'BiRmiNGHAM', 'liVERpoOL'];

for (let i = 0; i < cities.length; i++) { //nada lo de siempre una variable en el for que sirva para recorrer el array
  let input = cities[i]; //variable que contiene el arreglo
  let inputLow = input.toLowerCase(); //pongo en minuscula todos los strings del array
  let sliceInputLow = inputLow.slice(0,1); //variable con el recorte del string anterior (primera letra)
  let changeLetter = inputLow.replace(sliceInputLow,sliceInputLow.toUpperCase());
  //variable q contiene el remplazo en el string de nombre en minuscula de la primera
  //letra por la misma letra cambiada a mayuscula.

  let listItem = document.createElement('li'); //variable que contiene la creacion de un elemento lista
  listItem.textContent = changeLetter; //le agregamos al elemento creado el string 
  list.appendChild(listItem); //se crea un nodo en el elemento list donde ira el elemento listItem
}

Hacer cuerdas nuevas a partir de cuerdas viejas

const list = document.querySelector('.output ul');
list.innerHTML = '';
let stations = ['MAN675847583748sjt567654;Manchester Piccadilly',
                'GNF576746573fhdg4737dh4;Greenfield',
                'LIV5hg65hd737456236dch46dg4;Liverpool Lime Street',
                'SYB4f65hf75f736463;Stalybridge',
                'HUD5767ghtyfyr4536dh45dg45dg3;Huddersfield'];

for (let i = 0; i < stations.length; i++) { //para esta variable de ciclo for hitera hasta un maximo de numero de arrays
  let input = stations[i]; //esta es una variable que contiene cada uno de los strings
  let inputCode = input.slice(0,3); //seleccion de string que quiero cortar
  let searchInputName = input.search(";"); //buscando en que parte esta este sub string en el string que corresponda
  let inputName = input.slice(searchInputName+1); /*corte del string proncipal en el numero donde se encuenta el simbolo 
																									";" (obtenido en la variable anterior) mas 1 para recortar 
																									exactamente en el nombre de estacion*/
  let newInput = `${inputCode}: ${inputName}.`; //concatenacion

  let result = newInput ; //respuesta
  let listItem = document.createElement('li'); //creacion de un elemento li
  listItem.textContent = result; //agregar a este elemento el string
  list.appendChild(listItem); //creacion de nodo en el elemento list para agregar al recien creado li
}

Bibliografia

Entender diferencia entre indexOf() y search(), dos metodos para buscar el numero de caracter de un substring en un string. ⇒ Untitled