String en Javascript
Cadena de caracteres
El objeto String se utiliza para el tratamiento de cadenas de texto. Cada elemento de la cadena de caracteres ocupa una posición en la cadena. El primer elemento está en el índice 0, el siguiente en el indice 1 y así sucesivamente.
Se pueden crear cadenas simples utilizando comillas simples o dobles:
let cadenaTexto = "foo"; // Devuelve "foo"
let cadenaTexto2 = 'bar';// Devuelve 'bar'
String(4); // Devuelve "4"
String(0.7); // Devuelve "0.7"
Propiedades
El objeto String tiene tres propiedades:
- constructor: Devuelve la función constructora nativa
- length : Devuelve la longitud de la cadena
- prototype: Permite añadir nuevas propiedades y métodos al objeto
Conversiones
Podemos convertir una cadena de caracteres a enteros o float mediante las funciones parseInt y parseFloat.
parseInt("4"); // Devuelve 4
parseInt("Hola"); //Devuelve NaN ( no es el numero)
parseInt("21 calles"); Devuelve 21
parseFloat("1.5"); // Devuelve 1.5
parseFloat("1,5"); //Devuelve 1
String(new Date()); // Devuelve la fecha actual en formato GMT
Formateado de Strings
Javascript dispone de varias opciones para formatear texto, desde construcciones a traves de literales de cadena, hasta secuencias escapadas en hexadecimal o unicode
/** literales de cadena */
'Esto es un literal de cadena '
"Esto es otro literal de cadena "
/* Secuencia escapada en hexadecimal */
"\x41" // Devuelve "A"
/* Secuencia escapada en unicode */
"\u0041" // Devuelve "A"
/* modo multilinea */
console.log('Nombre: Pablo\n\
apellidos: Fernandez');
/* Multilinea solo en ES6 o + ) */
console.log(`Nombre: Pablo
Apellidos: Fernandez`);
Las comillas invertidas ( backticks) nos permite introducir variables dentro de nuestro string,
let nombre = "Inigo";
let saludo = `Hola, ${nombre} bienvenido`;
console.log(saludo); // devuelve "Hola, Iñigo bienvenido
Métodos
Los valores primitivos también son considerados objetos. Por esta razón, cualquier literal como » Esto es una cadena» puede ejecutar un método o una propiedad.
El número de métodos disponibles para este objeto es elevado, por lo que, a continuación, se muestran los más utilizados
- Metodo charAt:
Devuelve el carácter correspondiente a la posición proporcionada pro parámetro. Por defecto, la posicion es 0.
let texto = "Hola";
texto.charAt(0); // devuelve "H"
- Metodo charCodeAt:
Devuelve el código unicode del carácter que corresponda a la posición proporcionada por parámetro. Por defecto, la posición es 0.
let texto = "Hola";
texto.charCodeAt(0); // devuelve 72
- Método CodePointAt
Devuelve un entero no negativo que equivale al valor unicode code point del carácter
- Método IndexOf:
Devuelve la primera posición en la que aparece la subcadena proporcionada por parámetro. Si el resultado de la búsqueda fue infructuoso, el resultado será -1.
Tiene un segundo parámetro opcional que indica desde qué posición se debe empezar a buscar y que, por defecto es 0.
let texto = "Hola mundo";
texto.indexOf("o", 0); // devuelve 1
- Método lastIndexOf:
Devuelve la última posición en la que aparezca la subcadena proporcionada por parámetro. Si el resultado de la búsqueda fue infructuoso, el resultado será -1.
El método de búsqueda es al revés que el método indexOf, es decir, que busca desde el final hasta el principio.
Tiene un segundo parámetro opcional que indica desde qué posición se debe empezar a buscar y que, por defecto, es la longitud de la cadena.
let texto = "Hola mundo";
texto.lastIndexOf("o"); // devuelve 9
- Método startsWith.
Devuelve un booleano que indica si la cadena empieza pro el valor proporcionado por parámetro.
Acepta un segundo parámetro que indica dónde se debe empezar a relaizar la búsqueda. Por defecto es 0
let texto = "Hola mundo";
texto.starWith("mundo"); // Devuelve false
texto.starWith("mundo", 5); // Devuelve true
- Método endsWith:
Devuelve un booleano que indica si la cadena termina con la subcadena proporcionada por parámetro
let texto = "Hola mundo";
texto.endsWith("do"); // Devuelve true
- Método includes:
- Método concat: Devuelve otro String que tiene, como resultado, la unión entre de todas las cadenas proporcionadas por parámetro y la actual. El separador de parámetros es el símbolo como.
let texto = "Hola";
texto.concat(" ", "mundo"); // Devuelve "Hola mundo"
- Método fromCharCode:
devuelve una cadena creada mediante el uso de una secuencia de valores Unicode especificada.
String.fromCharCode(65,66,67); // devuelve "ABC"
- Método fromCodePoint:
Devuelve una cadena creada por una secuencia de puntos de código.
- Método split:
Devuelve un array con todos los fragmentos de cadena que resulten de dividir la cadena origen a través de otra cadena o expresión regular proporcionada por parámetro
let texto = "Hola mundo";
texto.split(" "); devuelve un array ["Hola", "mundo"]
- Método slice:
Devuelve el fragmento de la cadena que esté comprendido entre las posiciones proporcionadas por parámetro.
let texto = "Hola mundo";
texto.slice(0,4); // devuelve "Hola"
- Método substring:
Devuelve el fragmento de cadena que empieza por la posición indicada en el primer parametro y cuya longitud es el valor proporcionado por el segundo
let texto = "Hola mundo";
texto.substr(1,6); // devuelve "ola mu"
- Método substr:
Devuelve el fragmento de cadena que se encuentra entre las posiciones proporcionadas por los parámetros.
- Método match:
Permite encontrar coincidencias en una cadena mediante expresiones regulares.
let texto = "Hola mundo";
texto.match("/ho/i);
// devuelve un array con:
// ["Ho", index:0, input: "Hola mundo", groups: undefined]
- Método matchAll:
- Método replace:
Permite realizar reemplazos en una cadena a través de otra cadena o una expresión regular
- Método replaceAll:
Retorna una nueva cadena con todas las coincidencias de un patrón reemplazadas por en reemplazo. El patrón puede ser una cadena o una expresión regular, y el reemplazo puede ser una cadena o una función que será llamada para cada coincidencia. La cadena original permanecerá inalterada
- Método search:
Devuelve la posición de la primera aparición de la cadena proporcionada por parámetro.
Aunque este método acepta Strings como parámetro. Lo que utiliza son expresiones regulares. Por esta razón, si se introduce un Strings, será transformado de forma automática a una expresión regular.
- Método toLowerCase:
Devuelve la cadena convertida a minúsculas.
- Método toUpperCase:
Devuelve la cadena convertida a mayúsculas.
- Método normalize:
Permite convertir a la forma normal Unicode una cadena pasada como argumento
La forma normal a elegir tiene cuatro posible valores:
- NFC: Forma de Normalización de composicion canonica
- NFD: Forma de Normalización de Descomposición Canónica
- NFKC: Forma de Normalización de composicion de compatibilidad
- NFKD: Forma de Normalización de descomposicion de compatibilidad.
A parte de lo evidente, este método es útil, por ejemplo para reemplazar acentos.
Por defecto su valor es NFC.
let texto = "Ambigüedad inherente";
texto.normalize('NFD').replace(/[\u0300-\u036f]/g,""); // devuelve "Ambiguedad inherente"
- Método repeat:
Devuelve la concatenación de la cadena repetida las veces que se indica por parámetro.
let texto = "Hola mundo";
texto.repeat(2); // devuelve "Hola mundo" "Hola mundo"
- Método trim:
Devuelve la cadena sin los espacios en blanco que puedan existir en los extremos