Encontrar subcadenas en una cadena con matrices de JavaScript
Para determinar si una cadena contiene alguna de las subcadenas de una matriz, JavaScript proporciona enfoques flexibles .
Array Some Method
El método some itera sobre una matriz, proporcionando una función de devolución de llamada para probar cada elemento. Para verificar subcadenas, use el método indexOf() para buscar cada elemento de la matriz dentro de la cadena:
if (substrings.some(function(v) { return str.indexOf(v) >= 0; })) {
// There's at least one substring match
}
Expresión regular
Las expresiones regulares ofrecen una forma poderosa de hacer coincidir patrones de texto. Para buscar cualquier subcadena en la matriz dentro de la cadena, cree una expresión regular con todas las subcadenas como opciones alternativas y use el método test():
const regex = new RegExp(substrings.join("|"));
if (regex.test(str)) {
// At least one substring matches
}
Ejemplo
Consideremos una serie de subcadenas:
const substrings = ["one", "two", "three"];
Cadena con coincidencia de subcadena
const str = "This string includes \"one\".";
// Using array some method
const someMethodMatch = substrings.some(v => str.includes(v));
// Using regular expression
const regexMatch = str.match(new RegExp(substrings.join("|")));
Cadena sin coincidencia de subcadena
const str = "This string doesn't have any substrings.";
// Using array some method
const someMethodNoMatch = substrings.some(v => str.includes(v));
// Using regular expression
const regexNoMatch = str.match(new RegExp(substrings.join("|")));
Resultados
Prueba Método | Cadena con coincidencia | Cadena sin coincidencia |
---|---|---|
Arreglar algunos | algúnMethodMatch = true | someMethodNoMatch = false |
Expresión regular | regexMatch = true | regexNoMatch = null |
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3