none
Regular Expression em Javascript RRS feed

  • Pergunta

  • Pessoal estou tentando validar uma regular expression no customvalidator.

    Estou usando o customvalidator, pois preciso validar se está em branco o textbox também. Meu javascript está assim:

    function ValidarNumeroCaixa(source, arguments) {
    
      var str = arguments.Value;
      alert(arguments.Value);
    
      var patt1 = new RegExp("^([R]|[r]|[9])(\d{9})$");
      arguments.IsValid = patt1.test(str)
    }
    
    Testei a regular expression no site: http://tools.lymas.com.br/regexp_br.php# e ela está funcionando corretamente. O que pode ser?


    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
    quarta-feira, 25 de maio de 2011 17:19

Respostas

  • Henrique, creio que a abaixe esteja igual a sua porém um pouco mais simples veja.

    ^[rR9]{1}[\d]{9}$

    Testei no site abaixo:

    http://regexpal.com/

    Obs: Para passar a string para o objeto RegExp, utilize o @ antes, exemplo:

    var patt1 = new RegExp(@"^[rR9]{1}[\d]{9}$");


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    • Marcado como Resposta Harley Araujo sexta-feira, 27 de maio de 2011 13:23
    quinta-feira, 26 de maio de 2011 15:37
  • Oi,

    você pode utilizar o CustomValidator para validar do lado do servidor e colocar a lógica de programação em c# ou vb.

        <asp:CustomValidator ID="CustomValidator1"
            runat="server" ErrorMessage="ERRO"        
            onservervalidate="CustomValidator1_ServerValidate" 
            ControlToValidate="TextBox1" Display="Dynamic"></asp:CustomValidator>
    protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
    {
        string data = args.Value;
        // Start by setting false
        args.IsValid = false;
                
        // Check length
        if (data.Length == 11) return;
            args.IsValid = //aqui você retorna true out false dependendo da condição;
    }

     


    Erysson Barros Blog de Erysson Barros Twitter de Erysson Barros
    (Salmos 128:1) - BEM-AVENTURADO aquele que teme ao SENHOR e anda nos seus caminhos.
    • Marcado como Resposta Harley Araujo sexta-feira, 27 de maio de 2011 13:23
    quinta-feira, 26 de maio de 2011 15:52

Todas as Respostas

  • Puts bixo parece estar certo

    http://www.w3schools.com/js/js_obj_regexp.asp


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC
    quarta-feira, 25 de maio de 2011 20:14
    Moderador
  • Seilor,

    Hehehehe esse que é o problema, olhei muitos links e todos trazem essa mesma resolução :(. Esse link que você passou também olhei, e nada.

    Aparentemente está tudo certo sim, mas qdo executo isso so retorna false.

     


    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
    quarta-feira, 25 de maio de 2011 20:47
  • Henrique qual será os valores que poderão ser válidos nesta ER?

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    quarta-feira, 25 de maio de 2011 22:51
  • Luiz, bom dia!

    o valor tem que ser iniciado com R ou r ou 9, e após esse primeiro caracter deve conter mais 9 caracteres numéricos. Ficaria assim...

    9000000000
    r000000000
    R000000000


    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
    quinta-feira, 26 de maio de 2011 14:31
  • Verifique se o que você esta validando ta vindo do Banco de Dados, e cuidado com os espaços antes e depois do campo.

    Eu tinha um de verificação de e-mail do próprio controle, e nunca dava certo, olhava, e não tinha nada errado. Quando fui ver, tinha um espaço no final... desgastante.

     

    Mas faça isso, de um Trim, se puder dentro do javascript msm... não sei como ele se comporta com o arguments... Vai ver é isso. ou passe um valor fixo pra testar.

    quinta-feira, 26 de maio de 2011 14:59
  • Acho que faltou uma barra:

     

    var patt1 = new RegExp("^([R]|[r]|[9])(\\d{9})$");

     

    Note o \\d.

    Daria para simplificar um pouco a expressão deixando-a mais legível:

    "^[Rr9]\\d{9}$"

    quinta-feira, 26 de maio de 2011 15:04
  • Henrique, creio que a abaixe esteja igual a sua porém um pouco mais simples veja.

    ^[rR9]{1}[\d]{9}$

    Testei no site abaixo:

    http://regexpal.com/

    Obs: Para passar a string para o objeto RegExp, utilize o @ antes, exemplo:

    var patt1 = new RegExp(@"^[rR9]{1}[\d]{9}$");


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    • Marcado como Resposta Harley Araujo sexta-feira, 27 de maio de 2011 13:23
    quinta-feira, 26 de maio de 2011 15:37
  • Oi,

    você pode utilizar o CustomValidator para validar do lado do servidor e colocar a lógica de programação em c# ou vb.

        <asp:CustomValidator ID="CustomValidator1"
            runat="server" ErrorMessage="ERRO"        
            onservervalidate="CustomValidator1_ServerValidate" 
            ControlToValidate="TextBox1" Display="Dynamic"></asp:CustomValidator>
    protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
    {
        string data = args.Value;
        // Start by setting false
        args.IsValid = false;
                
        // Check length
        if (data.Length == 11) return;
            args.IsValid = //aqui você retorna true out false dependendo da condição;
    }

     


    Erysson Barros Blog de Erysson Barros Twitter de Erysson Barros
    (Salmos 128:1) - BEM-AVENTURADO aquele que teme ao SENHOR e anda nos seus caminhos.
    • Marcado como Resposta Harley Araujo sexta-feira, 27 de maio de 2011 13:23
    quinta-feira, 26 de maio de 2011 15:52