Fala Renan, tudo de boa?
Dá uma olhada nesse código, acho que para o seu problema seria simples adaptá-lo para fazer funcionar
var campoFiltro = document.querySelector("#filtrar-tabela");
campoFiltro.addEventListener("input", function() {
var linhas = document.querySelectorAll("tr");
if (this.value.length > 0) {
for (var i = 0; i < linhas.length; i++) {
var linha = linhas[i];
//recupera os dados da tabela, dados das tds filhas
var expressao = new RegExp(this.value, "i");
// Adição aqui
if (expressao.test(dadoDaTabela)) {
linha.classList.remove("invisivel");
} else {
linha.classList.add("invisivel");
}
}
} else {
for (var i = 0; i < linhas.length; i++) {
var linha = linhas[i];
linha.classList.remove("invisivel");
}
}
});
Repare que no meio do código será necessário recuperar os dados das TDs filhas da TR para testar com a regex que é criada de acordo com a entrada do usuário.
Tenha em mente também que você precisará testar a regex para cada dado recuperado da tabela.
Creio que com essa base você conseguirá ter uma luz para seguir.
Caso tenha alguma dúvida é só voltar a postar!
Abraços meu amigo!