Ver Mensaje Individual
  #37 (permalink)  
Antiguo 07/06/2006, 11:33
Avatar de stock
stock
 
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 20 años, 5 meses
Puntos: 53
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!!