Métodos del objeto String
Tratamiento de textos
Ya vimos que string era un tipo de dato que permitía almacenar cadenas de caracteres alfanuméricos (letras, números, signos de puntuación…). Las utilizamos para almacenar texto o valores que queremos tratar como tal (por ejemplo números que no manipularemos como cantidades en operaciones matemáticas).
Al igual que vimos con las variables de tipo numérico, las variables de texto también pueden tratarse como objetos, utilizando las propiedades y métodos del objeto ‘String’ que incorpora Javascript. Esto nos permite obtener información o manipular el valor almacenado en la variable de muchas formas. Para aplicarlos, deberemos escribirlo con la siguiente estructura: nombreVariable.metodo()
Vemos una propiedad y ocho métodos destacados que nos pueden ser de mucha utilidad:
Propiedad ‘length’
Nos da la longitud de una variable string, indicándonos el número de caracteres que tiene. Se llamaría de la siguiente forma: nombreVariable.length
1 2 3 4 5 6 7 |
<script> var texto1= prompt("Escribe un texto de una o varias palabras:"); var longTexto = texto1.length; //el método length, nos calcula el nº de caracteres del texto almacenado en 'texto1' document.write("El texto '" + texto1 + "' tiene: " + longTexto + " caracteres (incluyendo espacios en blanco)"); </script> |
Nota: en el texto del ejemplo, dentro de document.write hemos utilizado el carácter de escape «» antes de las comillas simples ( ‘ ‘ ) para que éstas sean tratadas como texto normal, y no como caracteres especiales de Javascript.
Método toUpperCase()
Cambia los caracteres almacenados en la variable a mayúsculas. Se escribe: nombreVariable.toUpperCase()
Prueba las siguientes líneas de código para ver un ejemplo, donde cambiamos la cadena de texto almacenada en una variable a mayúsculas:
1 2 3 4 5 |
<script> texto2= prompt("Escribe un texto que contengan minúsculas : "); texto2Mayusculas = texto2.toUpperCase(); //cambiamos a mayúsculas la cadena de texto almacenada en la variable texto2 document.write(texto2Mayusculas); </script> |
Método toLowerCase()
Hace justo lo contrario al método anterior, pasando los caracteres a minúscula. Compruébalo directamente en el anterior ejemplo cambiando en el script un método por otro e introduciendo un texto que contenga mayúsculas:
texto2.toLowercase();Métodos indexOf() y lastIndexOf()
Búsqueda de una cadena de texto (por ejemplo: un carácter, una palabra o una expresión) dentro del valor almacenado en la variable de texto. Si lo encuentra, nos da la posición del primer carácter de esa cadena en su primera aparición (indexOf) o en su última (lastIndexOf) dentro del texto.
Lo aplicamos de la siguiente forma: nombreVariable.indexOf("cadena a buscar")
1 2 3 4 5 6 7 8 |
<script> var texto2= "Ejemplo de búsqueda con un método Javascript en estos contenidos de introducción a Javascript de Digital Learning "; var posicionPrimera = texto2.indexOf("Javascript"); var posicionUltima = texto2.lastIndexOf("Javascript"); document.write("En el texto: " + "<br><em>" + texto2 + "</em><br>" + "la primera aparición de la palabra Javascript, comienza en la posición: " + posicionPrimera + "<br>"); document.write("La última aparición de la palabra Javascript, comienza en la posición: " + posicionUltima); </script> |
Método search()
Similar al anterior, pero más potente, ya que nos permite buscar utilizando expresiones regulares, es decir localizar coincidencias usando un patrón de texto.
Las expresiones regulares es un método muy utilizado en el tratamiento de textos, y se incluye en muchos lenguajes de programación. Describirlo requeriría casi un curso específico, que intentaremos desarrollar en un futuro próximo, pero para hacernos una primera idea, aquí te dejamos dos ejemplos:
- Encontrar si hay una cifra en el texto del ejemplo anterior: texto2.search(/[0-9]/)
- Encontrar si el texto contiene una ‘x’, ‘y’ o una ‘z’: texto2.search(/[x,y,z]/)
Como ves, empleamos el símbolo de barra inclinada ( / ) para delimitar el patrón que vamos a buscar.
En el primer ejemplo, la expresión ‘0-9’ entre corchetes ( [ ] ) se traduce por: cualquier número comprendido en el rango de 0 a 9, ambos incluidos, es decir, cualquier número. Si hubiésemos puesto /[a-m]/ sería: cualquier letra minúscula comprendida en el rango de la ‘a’ a la ‘m’.
En el segundo ejemplo, incluimos una lista de letras que queremos que se tengan en cuenta en la búsqueda, separadas por comas (,).
Si quieres conocer más sobre las las expresiones regulares, puedes empezar por este artículo de Wikipedia
Método charAt()
Este método hace en cierta manera lo contrario a indexOf(): indicamos una posición y nos devuelve el carácter que se encuentra allí.
Ejemplo:
texto2.charAt(34) : nos devuelve el caracter ‘J’Método substring()
Este método es similar al anterior, pero en este caso, nos devuelve los caracteres que se encuentran en un rango de posiciones.
Ejemplos:
texto2.substring(34,45) : nos devuelve el conjunto de caracteres entre la posición 34 y la 44 (la 45 no se tiene en cuenta), es decir: ‘Javascript’Método replace()
Este método es una especie de ‘buscar y cambiar’. Nos permite reemplazar la cadena de caracteres (uno o varios) que definimos en el primer argumento por la que definimos en el segundo argumento. Solo cambia la primera coincidencia.
Ejemplo:
texto2.replace("Javascript","JS") : reemplaza la palabra Javascript por JS (solo la 1ª que aparece en el texto, no la 2ª)