Verifique si una cadena contiene una subcadena usando include() en JavaScript

Para verificar si una cadena contiene una subcadena usando String.includes() en JavaScript:

  1. Llamar al String.includes() método en la cadena.
  2. Pase la subcadena como parámetro, p. String.includes(substr) .
  3. El String.includes() método devuelve true si la subcadena está contenida en la cadena. De lo contrario, false se devuelve.
const str = 'React is a popular JavaScript library.'
const substr = 'React'

if (str.includes(substr)) {
  console.log(`String contains "${substr}"`)
} else {
  console.log(`String does not contain "${substr}"`)
}
// String contains "React"

El String.includes() El método toma dos parámetros:

  1. searchString — La subcadena a buscar dentro de esta cadena.
  2. position — El índice desde el que comenzar la búsqueda. Este parámetro es opcional. Si no se especifica, la búsqueda comenzará desde cero.

Aquí hay otro ejemplo que usa String.includes() para verificar si una palabra está presente en una oración:

const sentence = 'The JavaScript is a client-side language.'

const word = 'language'

console.log(`The word "${word}" is ${sentence.includes(word) ? 'present' : 'not present'}.`)
// The word is present.

El String.includes() El método distingue entre mayúsculas y minúsculas, lo que significa que actúa de manera diferente con los caracteres en mayúsculas y minúsculas. La siguiente expresión devolverá false :

'JavaScript Jobs'.includes('jobs') // false

En los ejemplos anteriores, el segundo parámetro se omite porque queremos que la búsqueda comience desde el principio de la cadena. La mayoría de las veces, el segundo parámetro no es necesario.

Sin embargo, puede usar el segundo parámetro para limitar el alcance de la búsqueda, como se muestra a continuación:

const str = 'How are you doing? I am much better.'

str.includes('much', 20) // true

Si el índice de inicio es mayor o igual que la longitud de la cadena, el String.includes() El método no realiza ninguna búsqueda y simplemente devuelve false :

'My name is Atta!'.includes('Atta', 20) // false

Si el índice inicial es menor que 0, el String.includes() El método busca la cadena completa que es igual que si no se especifica ningún índice:

const str = 'Welcome to my blog!'

str.includes('blog', -5) // true

El String.includes() El método es compatible con todos los navegadores modernos, excepto Internet Explorer y algunos navegadores heredados de Android. Sin embargo, puede agregar fácilmente el siguiente polyfill para usarlo en todos los navegadores:

if (!String.prototype.includes) {
  String.prototype.includes = function(search, start) {
    'use strict';
    if (typeof start !== 'number') {
      start = 0;
    }

    if (start + search.length > this.length) {
      return false;
    } else {
      return this.indexOf(search, start) !== -1;
    }
  };
}

Fíjate en la primera línea. Detecta la función de soporte para String.includes() y solo carga el polyfill si el navegador no es compatible con String.includes() método.

Lea este artículo para conocer otras funciones de JavaScript que se pueden usar para verificar la presencia de una subcadena en una cadena.