How do I validate if a given phone number is valid?

This example shows you how to validate if a given phone number is valid..
package net.javaiq.examples.string;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * This class demonstrates on how to validate if a given phone number is valid. 
 * @author JavaIQ.net
 * Creation Date Dec 10, 2010
 */
public class PhoneNumberValidator {
    /** isPhoneNumberValid: Validate phone number using Java reg ex.
     * This method checks if the input string is a valid phone number.
     * @param phoneNumber String. Phone number to validate
     * @return boolean: true if phone number is valid, false otherwise.
     */
    public static boolean isPhoneNumberValid(String phoneNumber) {
        boolean isValid = false;
        /* Phone Number formats: (nnn)nnn-nnnn; nnnnnnnnnn; nnn-nnn-nnnn
            ^\\(?</STRONG> : May start with an option "(" .
            (\\d{3})</STRONG>: Followed by 3 digits.
            \\)?</STRONG> : May have an optional ")"
            [- ]?</STRONG> : May have an optional "-" after the first 3 digits or after optional ) character.
            (\\d{3})</STRONG> : Followed by 3 digits.
             [- ]? </STRONG>: May have another optional "-" after numeric digits.
             (\\d{4})$</STRONG> : ends with four digits.

             Examples: Matches following <A href="http://mylife.com">phone numbers</A>:
             (123)456-7890, 123-456-7890, 1234567890, (123)-456-7890
        */

        String expression = "^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$";
        CharSequence inputStr = phoneNumber;
        Pattern pattern = Pattern.compile(expression);
        Matcher matcher = pattern.matcher(inputStr);
        if (matcher.matches()) {
            isValid = true;
        }
        return isValid;
    }

    /**
     * Method to test other methods in the class with sample inputs
     * @param args
     */
    public static void main(String[] args) {
        System.out.println("1. Phone Number is " + isPhoneNumberValid("123-456-7890"));
        System.out.println("2. Phone Number is " + isPhoneNumberValid("(234) 456-7890"));
        System.out.println("3. Phone Number is " + isPhoneNumberValid("1234567890"));
        System.out.println("4. Phone Number is " + isPhoneNumberValid("234567-789"));
    }

}