Tema: Validaciones
Pregunta: Como validar solo letras y espacios?
Respuesta: Este FAQ es una respuesta que le dia a una companiera, la cual queria
validar que en un String
solo tubiera
letras y espacios.
para estos casos las expresiones regulares son la manera mas facil de resolverlo...
Lo unico que hay que hacer es modelar la expresion donde unicamente se acepten
letras y espacio, las letras sabemos que comienzan de A-Z y a-z. hasta ahora la expresion esta asi
[A-Za-z]
Nos hace falta el espacio, pues se lo agregamos dentro del rango
[A-Za-z ]
ok, exelente! esa expresion cumple para:
ej1: Hola como estas
ej2: para EsTa TaMbIeN
pero no para estas:
ej1: No para mi, que triste :(
ej2: tampoco para mi?? porque??
bien, hasta aqui todo bien, perooooo, lo que aqui se necesita es que cuando
esten otros caracteres que no sean letras ni espacio me lo haga saber para que yo les mande un mensaje de entrada invalida, ok, entonces lo unico que tenemos que ahcer es
negar nuestra expresion.
[^A-Za-z ]
ahora si!! esta lista para decirme cuando se encuatran otros caracteres raros!!
ok, pasemos a JAVA, para el manejo de expresiones tenemos 2 clases...
java.util.regex.Matcher;
java.util.regex.Pattern;
con la primera definimos el patron o la expresion que queremos.
con la segunda validamos la entrada....
el codigo quedaria asi:
Código PHP:
/**
* @author Crysfel Villa
* June 6, 2006
*/
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Expresion {
public static void main(String args[]){
String entrada = " No para mi?? que triste :( por que??";
Pattern patron = Pattern.compile("[^A-Za-z ]");
Matcher encaja = patron.matcher(entrada);
if(!encaja.find())
System.out.println("solo tiene letras y espacio!");
else
System.out.println("tiene otra cosa");
//tambie podemos quitarle esos caracteres y dejar solo las letras y espacios, checa esto!!
String resultado = encaja.replaceAll("");
System.out.println(entrada);
System.out.println(resultado);
}
}
bueno, espero que este mini tutorial te peuda servir!!