Validating user input in java

chris (2004-05-09 12:53:50)
0 replies
I have a basic pattern matching shell for a validation class which I have been using for the last few weeks on an application. It uses java's regular expression package in java.util.regex to pattern match strings against regular expressions. It's quite simple. This is how it's used:
// instantiate the Validator class
Validator validator = new Validator();

// call whichever method you want to use - depending on what your validating
// here I'm just checking that the string contains numbers only

      // do something if you fancy

// you'll only get this far if the validation was successful

And here's a copy of the full Validator class definition:

import java.util.regex.*;


 * $Id$
 * @author  Administrator

public class Validator {
    private String regex;
    private Pattern pattern;
    private Matcher matcher;
    /** Creates a new instance of Validator */
    public Validator() {
    public boolean checkName(String name){
        //System.out.println(" sent in name string: "+name);
        regex = ".*[^s]{1,}.*"; // anything, then at least one non whitespace charater, then anything
        pattern = Pattern.compile(regex);
    public boolean checkNumber(String number){
        /* check that there is a valid number */
        regex = ".*d+.*"; // any numbers (greedy & lazy)
        pattern = Pattern.compile(regex);
    public boolean checkEmail(String email){
        /* check that there is a valid number */
        pattern = Pattern.compile(".+@.+.[a-z]+"); // inclusive character class
            // no valid characters
            return false;
            return true;

I know my regular expressions are a bit sloppy, but hey..