Usuário com melhor resposta
Regex não funciona!

Pergunta
-
Uso VS2010, AspNet4, C#
Estou fazendo o código abaixo para verificar se em um Textbox tem apenas e obrigatoriamente letras e números
----- lado servidor---------
using System.Text.RegularExpressions;
string password = txtSenha.Text.Trim();
string verifica = "^[a-zA-Z0-9]";
if (Regex.IsMatch(password, verifica))
{}
mas não funciona, ex: se eu digitar "GIRAFALES" entra no if, o que tá errado??
Álvaro Luiz
Respostas
-
Na verdade seu regex verifica somente o primeiro caratere.
O regex correto é:
string verifica = "^[a-zA-Z0-9]+$"; if (Regex.IsMatch(password, verifica)) { }
fonte:http://regexlib.com/REDetails.aspx?regexp_id=1014
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Álvaro Luiz quarta-feira, 30 de outubro de 2013 22:15
-
Obrigatoriamente tem que ter letras E numeros.. ou é letras OU numeros (pode conter ou nao algun desses elementos)?
O regex que eu enviei é para o segundo caso. GIRAFALES, KIKO, CHAVEZ, BRUXA DO 71 sao validos
Agora se for para o primieiro caso eu sugiro usar:
^(?=.*\d).{4,10}$
que força a inclusai de pelo menos um digito e tem que ter no minimo 4 e no maximo 10 caracteres
neste caso BRUXADO71 passa mas GIRAFALES nao.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Álvaro Luiz quarta-feira, 30 de outubro de 2013 22:15
-
^(?=.*\d).{6,10}$
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Álvaro Luiz quarta-feira, 30 de outubro de 2013 22:15
-
Voce tem que colocar um arroba na frente da expressao:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Text.RegularExpressions; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { string password = "testsss1"; string verifica = @"^(?=.*\d).{6,10}$"; if (Regex.IsMatch(password, verifica)) { Console.Write("OK"); } else { Console.Write("nao OK"); } Console.ReadKey(); } } }
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Álvaro Luiz quarta-feira, 30 de outubro de 2013 22:15
Todas as Respostas
-
Na verdade seu regex verifica somente o primeiro caratere.
O regex correto é:
string verifica = "^[a-zA-Z0-9]+$"; if (Regex.IsMatch(password, verifica)) { }
fonte:http://regexlib.com/REDetails.aspx?regexp_id=1014
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Álvaro Luiz quarta-feira, 30 de outubro de 2013 22:15
-
Olá William! Obrigado pela resposta
fiz como voce sugeriu:
string password = txtSenha1.Text.Trim();
string verifica = "^[a-zA-Z0-9]+$";
if (Regex.IsMatch(password, verifica))
{}
mas continua sem filtrar, digito "GIRAFALES" e continua entrando no IF, gostaria que permitisse apenas texto digitado que contém letras e números
Álvaro Luiz
- Editado Álvaro Luiz quarta-feira, 30 de outubro de 2013 17:38
-
Obrigatoriamente tem que ter letras E numeros.. ou é letras OU numeros (pode conter ou nao algun desses elementos)?
O regex que eu enviei é para o segundo caso. GIRAFALES, KIKO, CHAVEZ, BRUXA DO 71 sao validos
Agora se for para o primieiro caso eu sugiro usar:
^(?=.*\d).{4,10}$
que força a inclusai de pelo menos um digito e tem que ter no minimo 4 e no maximo 10 caracteres
neste caso BRUXADO71 passa mas GIRAFALES nao.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Álvaro Luiz quarta-feira, 30 de outubro de 2013 22:15
-
-
^(?=.*\d).{6,10}$
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Álvaro Luiz quarta-feira, 30 de outubro de 2013 22:15
-
-
Voce tem que colocar um arroba na frente da expressao:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Text.RegularExpressions; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { string password = "testsss1"; string verifica = @"^(?=.*\d).{6,10}$"; if (Regex.IsMatch(password, verifica)) { Console.Write("OK"); } else { Console.Write("nao OK"); } Console.ReadKey(); } } }
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Álvaro Luiz quarta-feira, 30 de outubro de 2013 22:15
-