Estou recebendo uma matriz de objetos usando JSON emeu objetivo é permitir que o usuário pesquise um login específico. Para isso, quero que eles possam digitar uma letra e verificar o login de cada objeto, se a letra estiver contida, quero exibi-la. Para conseguir isso, trabalhei no seguinte código:
var i;
var out="";
var exp=/d/g;
var result = " ";
for(i=0;i<users.length;i++){
result= exp.test(users[i].login);
if(result){
out+= users[i].login+ " ";
}
}
Funciona bem se eu escrever o regex (neste casod) mas uma vez que tento colocar uma variável dentro do regex, não funcionará. Como crio uma regex que leva a entrada dos usuários e trabalha com a função de teste para executar a mesma tarefa? Ou idk, se houver uma solução melhor / mais elegante para isso. Eu sei que já existem perguntas diferentes sobre regex, mas não encontrei uma que me ajudou.
Aprecie a ajuda!
Respostas:
0 para resposta № 1Você está testando uma sequência literal - essa sequência é passada pelo usuário, mas ainda é literal, não uma expressão regular.
Então você deve tentar:
if( users[i].login.indexOf(userInput) > -1)
Isso passará se a entrada fornecida estiver na string pesquisada.