JavaScript String Search

JavaScript String Search

Contenido original de W3Schools


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");

Ver ejemplo


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");

Ver ejemplo

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");

Ver ejemplo

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);

Ver ejemplo

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);

Ver ejemplo


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");

Ver ejemplo


Ejemplo:

let text = "Please locate where 'locate' occurs!";
text.search(/locate/);

Ver ejemplo


¿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");

Ver ejemplo


Realice una búsqueda de "ain":

let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/);

Ver ejemplo


Realice una búsqueda global de "ain":

let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/g);

Ver ejemplo


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);

Ver ejemplo


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");

Ver ejemplo


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);

Ver ejemplo


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);

Ver ejemplo


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");

Ver ejemplo


Comprueba si una cadena incluye "world". Comience en la posición 12:

let text = "Hello world, welcome to the universe.";
text.includes("world", 12);

Ver ejemplo


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");

Ver ejemplo


Devuelve falso:

let text = "Hello world, welcome to the universe.";
text.startsWith("world")

Ver ejemplo


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)

Ver ejemplo


Devuelve verdadero:

let text = "Hello world, welcome to the universe.";
text.startsWith("world", 6)

Ver ejemplo


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");

Ver ejemplo

Comprueba si los 11 primeros caracteres de una cadena terminan en "world":

let text = "Hello world, welcome to the universe.";
text.endsWith("world", 11);

Ver ejemplo


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

Did you find this article valuable?

Support Santos Romero by becoming a sponsor. Any amount is appreciated!