Ir para conteúdo
Fórum Script Brasil
  • 0

match


Martinsrj

Pergunta

Olá pessoal, bom dia!

Estou com duvida na utilização Método match.

Quando eu digito no campo . ou , não entra nesse if:

if (inputValor.match(".") && (inputValor.match(",")){

    alert("Digite apenas a virgula!");
    elemento.focus(); 
    return false;
}
Abaixo segue o código completo:
function validaValor( elemento ){
var inputValor = elemento.value; 

if (inputValor.match(".") && (inputValor.match(",")){

    alert("Digite apenas a virgula!");
    elemento.focus(); 
    return false;
}

if (!inputValor.match(",")){
    alert("Atenção, virgula obrigatório!");
    elemento.focus(); 
    return false;
}

for (i = 0; i < inputValor.length; i++){
        switch(inputValor.charAt(i)) {
         case ".":
             alert("Atenção, não utilize o ponto!");
            elemento.focus();
            break; 
         case ",":
              if (inputValor.charAt(i+1) == "" || inputValor.charAt(i+2) == "" || inputValor.charAt(i+3) != ""){          
                  alert("Digite o valor com dois digitos após a virgula!");
                  elemento.focus();
              }
              break;
        } 
      }
}

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

e aew Martinsrj, bom primeiro está sobrando um parenteses:

if (inputValor.match(".") && (inputValor.match(",")){
deixe assim:
if (inputValor.match(".") && inputValor.match(",")){

segundo o metodo match é recomendado para buscar expressoes regulares, se você quer buscar uma string simples pode usar o metodo indexOf.

bom espero que ajude, abraço!

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Romerito, beleza?!

Realmente eu inseri erradamente, porem realizei já o acerto deixando dessa forma abaixo, mas o erro continua!

var inputValor = elemento.value; 
    if (inputValor.match(".") && inputValor.match(",")){    
        alert("Digite apenas a virgula!");
        elemento.focus(); 
        return false;
    }
Abraços.
e aew Martinsrj, bom primeiro está sobrando um parenteses:
if (inputValor.match(".") && (inputValor.match(",")){
deixe assim:
if (inputValor.match(".") && inputValor.match(",")){

segundo o metodo match é recomendado para buscar expressoes regulares, se você quer buscar uma string simples pode usar o metodo indexOf.

bom espero que ajude, abraço!

Link para o comentário
Compartilhar em outros sites

  • 0

var inputValor = elemento.value;

var ponto = 0;
var virgula = 0;

ponto = inputValor.indexOf('.');
virgula = inputValor.indexOf(',');

    if ( (ponto > 0) && (virgula > 0) ){    
        alert("Digite apenas a virgula!");
        elemento.focus();
        return false;
    }

não testei mas acho que assim deve funcionar

abraço

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...