Javascript, pick a number (zip code) within a city band

Asked

Viewed 331 times

-1

I have a list of Zip Code of cities that an agreement meets (sells). for example: Campinas Range of Campinas Cep 13000001 to 13139999, Araras from 13600001 to 13609999. I needed to create an Else IF so for a template input: Note: If the code is wrong there below, it was really to illustrate, can be in JS or Jquery.

var campinas (13000001 a 13139999);
var araras (13600001 a 13609999);
if (valor digitado estiver na faixa dos cep de Campinas ou Araras) {
   alert("Cobrimos sua área");
} else {
   alert("Não atendemos a área de seu CEP");
}

HTML:

<input type="text" id="cep" />

2 answers

0


I suppose you already have a way to get the value of the cep written in the input and placed in a variable that we will call cep;

// Remove tudo da string deixando somente os numeros e converte a mesma em um inteiro
var cleanCep = parseInt(cep.replace(/\D+/g, ''));

And let’s say you have an array of objects with the cities that are accepted:

var cidades = [
  {nome: 'Campinas', cMin: 13000001, cMax: 13139999},
  {nome: 'Araras', cMin: 13600001, cMax: 13609999},
];

Cmin and Cmax are for minimum and maximum cep.

Now let’s check if one of the cities is in the range of the zip code inserted using the method find

// O metodo find irá retornar o primeiro elemento do seu array que condiz com a condição inserida
var cidade = cidades.find((cd) => cleanCep >= cd.cMin && cleanCep <= cd.cMax);

After that just check if the city variable contém a value

if(cidade){
   // Se o cep estiver no range, o valor da variável cidade será a primeira cidade que fez match com a expressão usada no método `find`
   console.log(`A cidade ${cidade.nome} é aceita`);
} else {
   console.error(`Cidade não suportada`);
}
  • Leo follows down my doubt.

0

Leo, thanks for coming back. I don’t know if I understand, but I made a mistake, look what I put:

<script>
            
    function validaCobertura(){
    var cep = parseFloat(document.getElementById("cep").value);
            
          var cidades = [
               {nome: 'Campinas', cMin: 13000001, cMax: 13139999},
               {nome: 'Araras', cMin: 13140000, cMax: 13140999},
          ];
    
          var cidade = cidades.find((cd) => cleanCep >= cd.cMin && cleanCep <= cd.cMax);
    
          if(cidade){
                console.log('A cidade ${cidade.nome} é aceita');
           } else {
                console.error('Cidade não suportada');
           }     
            
    }
    
</script>

Html:

<input type="text" id="cep" placeholder="cep" />
<button onclick="validaCobertura()">Exibir Cep</button>
  • look in to find method has cleanCep as a variable, but you saved the value of your input to a variable called cep

  • Here a example how can you do

  • Thanks Leo Letto, thank you.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.