org.yestech.lib.i18n.PostalCodeUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of yeslib Show documentation
Show all versions of yeslib Show documentation
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.
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();
}
}