Usuário com melhor resposta
RegularExpressionValidator

Pergunta
-
Como validar apenas os numeros 1,2,3,4 e 5 pelo RegularExpressionValidator ?
<asp:RegularExpressionValidatorID="RegularExpressionValidator4"runat="server" ControlToValidate="TextBoxNUMERO"
ErrorMessage="Numero inválido"Font-Size="8pt"
ValidationExpression="Aqui seria o codigo da validação">
*</asp:RegularExpressionValidator>
alguem sabe ?
Fico no aguardo.
Obrigado.
Respostas
-
Se for uma palavra basta colocar somente ela, se for um grupo de palavras, basta colocar todas separadas por |, conforme:
^(ANGULAR|TOPO|LONGITUDINAL)$
O pipe "|", tem a função de OU.
No caso, só coloquei as palavras em maiúsculas... se for preciso minúsculas você terá que colocá-las também. Os parênteses nesse caso são opcionais também, mas pela mesma questão das boas práticas que adoto, sempre coloco quando utilizo OU.
RegularExpressions são bem interessantes e muito úteis... é muito difícil saber tudo e montar expressões complexas, porém, sabendo o básico já ajuda bastante.
O site abaixo é bem interessante, tem várias Regex para N situações, assim como testar regex:
Diego Cotini do Couto - MCTS .NET Framework 3.5, ASP.NET Applications
- Marcado como Resposta ricardoti2012 segunda-feira, 17 de junho de 2013 19:11
Todas as Respostas
-
Olá,
Se você quiser que somente os números de 1 à 5 sejam válidos, independentemente da quantidade de caracteres informados, a expressão seria:
ValidationExpression="^[1-5]*$"
^ --> indica que deve a validação deve valer do inicio;
[1-5] --> indica que o intervalo válido vai de 1 à 5;
* --> indica que pode haver 0 ou N caracteres;
$ --> indica que a validação deve valer até o final;
Sem o ^ e $, se tivesse qualquer numeral de 1 à 5 em qualquer parte da string, a expressão resultaria em verdadeiro.
Diego Cotini do Couto - MCTS .NET Framework 3.5, ASP.NET Applications
-
-
Se for somente um dígito fica:
ValidationExpression="^[1-5]$"
* Lembrando que o RegularExpressionValidator não realiza validação quando a string é vazia, portanto, se for obrigatório o preenchimento, terá que colocar um RequiredFieldValidator também.
Diego Cotini do Couto - MCTS .NET Framework 3.5, ASP.NET Applications
-
Diego.
So me tira uma duvida o outro Diego colocou sem o $
E vc colocou com $
$ --> indica que a validação deve valer até o final;
Qual eu uso ?
Pela sua explicação que coloqui acima esse simbolo inidica que deve valer ate o final.
Porem não entendi ja que tem apenas 1 digito.
Fico no aguardo.
Obrigado.
-
Paulo,
Neste caso, ambas terão o mesmo funcionamento. Da mesma forma que se fosse colocado "[1-5]$".
Porém, como boa prática, sempre que quero que algo seja rigidamente iniciado e terminado dessa forma, coloco ^$.
Se você estivesse utilizando uma Regex para fazer Replace, essa distinção faria diferença, conforme:
Regex regInicio = new Regex("^[1-5]"); string valInicio = regInicio.Replace("123", "@"); Regex regFim = new Regex("[1-5]$"); string valFim = regFim.Replace("123", "@"); Regex regInicioFim = new Regex("^[1-5]$"); string valInicioFim = regInicioFim.Replace("123", "@"); Regex regQualquer = new Regex("[1-5]"); string valQualquer = regQualquer.Replace("123", "@");
1º Caso: substituiria o primeiro dígito numérico se estiver no início da sequência;
2º Caso: substituiria o último dígito numérico se estiver no fim da sequência;
3º Caso: substituiria o dígito numérico somente se estiver no início e fim, ou seja for único;
4º Caso: substituiria o dígito numérico independente da posição, portanto, substituiria todos;
* O dígito numérico de 1 a 5;
Diego Cotini do Couto - MCTS .NET Framework 3.5, ASP.NET Applications
- Editado Diego Cotini sexta-feira, 14 de junho de 2013 18:25
-
-
Se for uma palavra basta colocar somente ela, se for um grupo de palavras, basta colocar todas separadas por |, conforme:
^(ANGULAR|TOPO|LONGITUDINAL)$
O pipe "|", tem a função de OU.
No caso, só coloquei as palavras em maiúsculas... se for preciso minúsculas você terá que colocá-las também. Os parênteses nesse caso são opcionais também, mas pela mesma questão das boas práticas que adoto, sempre coloco quando utilizo OU.
RegularExpressions são bem interessantes e muito úteis... é muito difícil saber tudo e montar expressões complexas, porém, sabendo o básico já ajuda bastante.
O site abaixo é bem interessante, tem várias Regex para N situações, assim como testar regex:
Diego Cotini do Couto - MCTS .NET Framework 3.5, ASP.NET Applications
- Marcado como Resposta ricardoti2012 segunda-feira, 17 de junho de 2013 19:11
-