Em uma escala de 0 a 10, meu conhecimento em expressões regulares é 1 ou 2.
E estou precisando de algo de extrema importância, para um projeto profissional, e não estou conseguindo. Por isso preciso da ajuda de vocês
Tenho um campo, onde o usuário terá que digitar seu endereço. A medida que ele for digitando, com o autocomplete do jQuery (e Ajax), faço uma busca no meu banco de dados (que possui todos endereços nacionais), e é retornado para o usuário uma lista de endereços semelhantes com aquile que ele digitou, então ele escolhe um endereço desta lista.
O problema é que no banco de dados, os endereços estão com o logradouro completo (e não abreviado), como por exemplo: Rua, Alameda, Avenida, etc.
Mas se o usuário digita: Av. (ao invés de Avenida), é óbvio que o banco de dados não irá retornar nenhum endereço. Por isso, com JavaScript, penssei fazer com que, ao digitar Av., Ele substituisse por Avenida. Ao digitar R., ele substituisse por Rua. E assim por diante.
Até ai tudo bem. Se o usuário digitar: "Av.", será substituido pro "Avenida".
O problema é que se o usuário digitar "Av " (sem o ponto), não será substituido. Então penssei colocar na expressão regular, a opção de o "." ser opcional.
Então, ficaria assim a expressão regular para este exemplo da Avenida que dei:
regex = /[A][v][.]?\s/;
Ou seja, o "A" e o "v" obrigatório, o "." opcional e o " " (espaço) obrigatório.
O problema que isso eu fiz manualmente. O que preciso, é que ao invés de manualmente eu colocar: "[A][v]" na expressão regular, isso seja preenchido com o conteúdo da array "logradouros" (que criei no código lá em cima).
---
Resumindo toda minha pergunta em apenas 1 frase: Como usar variáveis em expressões regulares no JavaScript, neste exemplo que dei acima?
Agradeço muito aqueles que tentarem me ajuda. Inclusive, se possível, precisaria da ajuda um pouco rápido (não querendo abusar da boa vontade), é que é algo profissional, e não pessoal.
Pergunta
Anderson Ferreira
Olá galera,
Em uma escala de 0 a 10, meu conhecimento em expressões regulares é 1 ou 2.
E estou precisando de algo de extrema importância, para um projeto profissional, e não estou conseguindo. Por isso preciso da ajuda de vocês
Tenho um campo, onde o usuário terá que digitar seu endereço. A medida que ele for digitando, com o autocomplete do jQuery (e Ajax), faço uma busca no meu banco de dados (que possui todos endereços nacionais), e é retornado para o usuário uma lista de endereços semelhantes com aquile que ele digitou, então ele escolhe um endereço desta lista.
O problema é que no banco de dados, os endereços estão com o logradouro completo (e não abreviado), como por exemplo: Rua, Alameda, Avenida, etc.
Mas se o usuário digita: Av. (ao invés de Avenida), é óbvio que o banco de dados não irá retornar nenhum endereço. Por isso, com JavaScript, penssei fazer com que, ao digitar Av., Ele substituisse por Avenida. Ao digitar R., ele substituisse por Rua. E assim por diante.
Para isso, criei a seguinte função no JS:
Até ai tudo bem. Se o usuário digitar: "Av.", será substituido pro "Avenida". O problema é que se o usuário digitar "Av " (sem o ponto), não será substituido. Então penssei colocar na expressão regular, a opção de o "." ser opcional. Então, ficaria assim a expressão regular para este exemplo da Avenida que dei:Ou seja, o "A" e o "v" obrigatório, o "." opcional e o " " (espaço) obrigatório.
O problema que isso eu fiz manualmente. O que preciso, é que ao invés de manualmente eu colocar: "[A][v]" na expressão regular, isso seja preenchido com o conteúdo da array "logradouros" (que criei no código lá em cima).
---
Resumindo toda minha pergunta em apenas 1 frase: Como usar variáveis em expressões regulares no JavaScript, neste exemplo que dei acima?
Agradeço muito aqueles que tentarem me ajuda. Inclusive, se possível, precisaria da ajuda um pouco rápido (não querendo abusar da boa vontade), é que é algo profissional, e não pessoal.
Obrigado mesmo,
Abraços,
Anderson Ferreira
Editado por Anderson FerreiraLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.