Pessoal,
Preciso fazer uma expressão regular que retorne sucesso caso eu receba letras a-z e números 0-9, fiz o seguinte método:
public boolean isCampoValido(String texto){
Pattern p = Pattern.compile("[a-zA-Z0-9]");
Matcher m = p.matcher(texto);
return m.matches();
}
mas não está funcionando, retorna erro sempre, alguém pode me dar uma força?
:thumbup:
[quote=Bird89du]Pessoal,
Preciso fazer uma expressão regular que retorne sucesso caso eu receba letras a-z e números 0-9, fiz o seguinte método:
public boolean isCampoValido(String texto){
Pattern p = Pattern.compile("[a-zA-Z0-9]");
Matcher m = p.matcher(texto);
return m.matches();
}
mas não está funcionando, retorna erro sempre, alguém pode me dar uma força?
:thumbup: [/quote]
Qual erro?
No seu código, se você colocar apenas, um número, ou uma letra, seja ela maiúscula ou minúscula, a função retorna ok, o que faltou, é dizer para a regex que ela pode aceitar outros caracteres do mesmo conjunto!
import java.text.ParseException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
/**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
System.out.println(isCampoValido("9a"));
System.out.println(isCampoValido("9A"));
System.out.println(isCampoValido("a9a"));
System.out.println(isCampoValido("9a0"));
System.out.println(isCampoValido("9a+"));
}
public static boolean isCampoValido(String texto){
Pattern p = Pattern.compile("[a-zA-Z0-9]+");
Matcher m = p.matcher(texto);
return m.matches();
}
}
Complementando, o + faz com que você possua algum dos caracteres definidos no conjunto AO MENOS 1 VEZ.
caso queira ZERO OU MAIS VEZES, troca por um *. você pode definir o tamanho fixo ou com intervalo utilizando {4} ou {2,4}.
[quote]Complementando, o + faz com que você possua algum dos caracteres definidos no conjunto AO MENOS 1 VEZ.
caso queira ZERO OU MAIS VEZES, troca por um *. você pode definir o tamanho fixo ou com intervalo utilizando {4} ou {2,4}.[/quote]
É isso ai, deu certo.
Respondendo a pergunta do rogelgarcia: não validava os caracteres.
valeu pessoal