Galera, eu estou tentendo validar um campo telefone, só que a minha expressão regular está dando erro.
esse é o código:
private boolean validoTelefone( String telefone ) {
if(telefone.matches("^\(\d{2}\) \d{4}-\d{4}$") ) {
return true;
}
else {
JOptionPane.showMessageDialog(this, "Telefone inválido");
return false;
}
}
o erro é :
ilegal escape character
ilegal escape character
ilegal escape character
ilegal escape character
ilegal escape character
aparece cinco vezes esse erro. Se alguem souber corrigir, eu agradeço.
Cara, tente a seguinte expressao regular:
"\(\d{2}\)\d{4}-\d{4}"
veja o teste:
String telefone = "(22)1234-4323";
System.out.println(Pattern.matches("\(\d{2}\)\d{4}-\d{4}", telefone));
ate
Vini Fernandes, muito obrigado, deu certim.
Só me explica uma coisa, porque tem que colocar duas barras (\ ) e não só uma?
Porque faz parte da sintaxe do Java. O caracter barra “” deve ser representado por barra dupla. Tente fazer o seguinte:
System.out.println("imprimindo o caracter barra \");
voce tera um erro de compilacao, mas veja agora:
System.out.println("imprimindo o caracter barra \");
t+
ahhhhhffffff… que burro q eu sou, nem prestei atenção nisso… é verdade cara, para se ter uma barra no java tem que colocar duas