Métodos de búsqueda de cadenas
Cadena
indexOf()
Cadena
lastIndexOf()
Cadena
search()
Cadena
match()
Cadena
matchAll()
Cadena
includes()
Cadena
startsWith()
Cadena
endsWith()
Cadena JavaScript indexOf()
El método indexOf()
devuelve el índice (posición) de la primera aparición de una cadena en una cadena:
Ejemplo:
let text = "Please locate where 'locate' occurs!";
let index = text.indexOf("locate");
Nota
JavaScript cuenta las posiciones desde cero.
0 es la primera posición en una cadena, 1 es la segunda, 2 es la tercera, etc.
Cadena JavaScript lastIndexOf()
El método lastIndexOf()
devuelve el índice de la última aparición de un texto especificado en una cadena:
Ejemplo:
let text = "Please locate where 'locate' occurs!";
let index = text.lastIndexOf("locate");
Tanto indexOf()
como lastIndexOf()
devuelven -1 si no se encuentra el texto:
Ejemplo:
let text = "Please locate where 'locate' occurs!";
let index = text.lastIndexOf("John");
Ambos métodos aceptan un segundo parámetro como posición inicial de la búsqueda:
Ejemplo:
let text = "Please locate where 'locate' occurs!";
let index = text.indexOf("locate", 15);
Los métodos lastIndexOf()
buscan hacia atrás (desde el final hasta el principio), es decir: si el segundo parámetro es 15, la búsqueda comienza en la posición 15 y busca hasta el principio de la cadena.
Ejemplo:
let text = "Please locate where 'locate' occurs!";
text.lastIndexOf("locate", 15);
Cadena JavaScript search()
El método search()
busca una cadena (o una expresión regular) en un conjunto de cadenas y devuelve la posición de la coincidencia:
Ejemplo:
let text = "Please locate where 'locate' occurs!";
text.search("locate");
Ejemplo:
let text = "Please locate where 'locate' occurs!";
text.search(/locate/);
¿Te diste cuenta?
¿Los dos métodos, indexOf()
y search()
, son iguales?
¿Aceptan los mismos argumentos (parámetros) y devuelven el mismo valor?
Los dos métodos NO son iguales. Estas son las diferencias:
El método
search()
no puede tomar un segundo argumento de posición inicial.El método
indexOf()
no puede tomar valores de búsqueda potentes (expresiones regulares).
Aprenderás más sobre las expresiones regulares en un capítulo posterior.
Cadena JavaScript match()
El método match()
devuelve una matriz que contiene los resultados de hacer coincidir una cadena con una cadena (o una expresión regular).
Ejemplo:
Realice una búsqueda de "ain":
let text = "The rain in SPAIN stays mainly in the plain";
text.match("ain");
Realice una búsqueda de "ain":
let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/);
Realice una búsqueda global de "ain":
let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/g);
Realice una búsqueda global que no distinga entre mayúsculas y minúsculas de "ain":
let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/gi);
Nota
Si una expresión regular no incluye el modificador g
(búsqueda global), match()
devolverá sólo la primera coincidencia de la cadena.
Lea más sobre expresiones regulares en el capítulo JS RegExp.
Cadena JavaScript matchAll()
El método matchAll()
devuelve un iterador que contiene los resultados de hacer coincidir una cadena con un conjunto de cadenas (o una expresión regular).
Ejemplo:
const iterator = text.matchAll("Cats");
Si el parámetro es una expresión regular, se debe establecer el indicador global (g
); de lo contrario, se genera un TypeError
.
Ejemplo:
const iterator = text.matchAll(/Cats/g);
Si deseas buscar sin diferenciar entre mayúsculas y minúsculas, se debe configurar el indicador de insensibilidad (i)
:
Ejemplo:
const iterator = text.matchAll(/Cats/gi);
Nota
matchAll()
es una característica de ES2020.
matchAll()
no funciona en Internet Explorer.
Cadena JavaScript includes()
El método includes()
devuelve verdadero si una cadena contiene un valor específico.
De lo contrario devuelve false
.
Ejemplo:
Comprueba si una cadena incluye "world":
let text = "Hello world, welcome to the universe.";
text.includes("world");
Comprueba si una cadena incluye "world". Comience en la posición 12:
let text = "Hello world, welcome to the universe.";
text.includes("world", 12);
Nota
includes()
diferencia entre mayúsculas y minúsculas.
includes()
es una característica de ES6.
includes()
no es compatible con Internet Explorer.
Cadena JavaScript startsWith()
El método startWith()
devuelve verdadero si una cadena comienza con un valor específico.
De lo contrario devuelve false
:
Ejemplo:
Devuelve verdadero:
let text = "Hello world, welcome to the universe.";
text.startsWith("Hello");
Devuelve falso:
let text = "Hello world, welcome to the universe.";
text.startsWith("world")
Se puede especificar una posición inicial para la búsqueda:
Devuelve falso:
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 5)
Devuelve verdadero:
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 6)
Nota
startsWith()
diferencia entre mayúsculas y minúsculas.
startsWith()
es una característica de ES6.
startsWith()
no es compatible con Internet Explorer.
Cadena JavaScript endsWith()
El método endsWith()
devuelve true
si una cadena termina con un valor específico.
De lo contrario devuelve false
:
Ejemplo:
Comprueba si una cadena termina con "Doe":
let text = "John Doe";
text.endsWith("Doe");
Comprueba si los 11 primeros caracteres de una cadena terminan en "world":
let text = "Hello world, welcome to the universe.";
text.endsWith("world", 11);
Nota
endsWith()
diferencia entre mayúsculas y minúsculas.
endsWith()
es una característica de ES6.
endsWith()
no es compatible con Internet Explorer.
Referencias
Para obtener una referencia completa de cadenas, vaya a:
Referencia completa de cadenas de JavaScript.
La referencia contiene descripciones y ejemplos de todas las propiedades y métodos de cadena.
Traducido con 💚 desde W3Schools.com