Encontrando substrings em uma string com matrizes JavaScript
Para determinar se uma string contém alguma das substrings de uma matriz, o JavaScript fornece abordagens flexíveis .
Array Some Method
O método some itera sobre um array, fornecendo uma função de retorno de chamada para testar cada elemento. Para verificar substrings, use o método indexOf() para pesquisar cada elemento da matriz dentro da string:
if (substrings.some(function(v) { return str.indexOf(v) >= 0; })) {
// There's at least one substring match
}
Expressão regular
Expressões regulares oferecem uma maneira poderosa de combinar padrões de texto. Para procurar qualquer substring na matriz dentro da string, crie uma regex com todas as substrings como opções alternativas e use o método test():
const regex = new RegExp(substrings.join("|"));
if (regex.test(str)) {
// At least one substring matches
}
Exemplo
Vamos considerar uma matriz de substrings:
const substrings = ["one", "two", "three"];
String com correspondência de substring
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("|")));
String sem correspondência de substring
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
Teste Método | String com correspondência | String sem correspondência |
---|---|---|
Array some | someMethodMatch = true | someMethodNoMatch = false |
Expressão regular | regexMatch = true | regexNoMatch = null |
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3