All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.yestech.lib.i18n.PostalCodeUtil Maven / Gradle / Ivy

Go to download

A collection of classes that can be used across yestech artifacts/components, but must not be dependant on any yestech component. Most of the code is utility type code. When more than a few classes are found to be in a package or the package start to handle more that a few reposibilities then a new independant component is created and the existing code in yeslib is ported to the new component.

There is a newer version: 1.2.0
Show newest version
package org.yestech.lib.i18n;

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

/**
 *
 *
 */
public final class PostalCodeUtil
{

    private PostalCodeUtil() {
    }


    private static final Pattern US_LONG;
    private static final Pattern US_SHORT;

    static {
        US_SHORT= Pattern.compile("[0-9]{5}");
        US_LONG = Pattern.compile("[0-9]{5}\\-[0-9]{4}");
    }

    public static boolean isValid(String code, CountryEnum countryEnum) {
        if (code == null) return false;
        
        //noinspection SimplifiableIfStatement
        if (countryEnum == CountryEnum.UNITED_STATES) {
            return isValidUS(code);
        }
        return false;
    }

    public static boolean isValidUS(String code) {
        if (code == null) return false;
        Matcher matcher = US_SHORT.matcher(code);
        if (matcher.matches()) {
            return true;
        }

        matcher = US_LONG.matcher(code);

        return matcher.matches();
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy