
com.opsbears.webcomponents.validator.FormalDomainNameValidator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of validator Show documentation
Show all versions of validator Show documentation
Utilities for basic validations.
The newest version!
package com.opsbears.webcomponents.validator;
import javax.annotation.Nonnull;
import java.net.IDN;
import java.util.regex.Pattern;
public class FormalDomainNameValidator implements DomainNameValidator {
private static Pattern domainPattern;
private static Pattern getLocalPartPattern() {
if (domainPattern == null) {
domainPattern = Pattern.compile(
"\\A((xn--[a-zA-Z0-9]|[a-zA-Z0-9])([a-zA-Z0-9]|-[a-zA-Z0-9])*)" +
"(\\.((xn--[a-zA-Z0-9]|[a-zA-Z0-9])([a-zA-Z0-9]|-[a-zA-Z0-9])*))*\\z"
);
}
return domainPattern;
}
@Nonnull
@Override
public String getUniqueKey() {
return "domain-name-format";
}
@Override
public boolean isValidString(@Nonnull String value) {
if (value.contains("\n")) {
return false;
}
try {
return getLocalPartPattern().matcher(IDN.toASCII(value)).matches();
} catch (Exception e) {
return false;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy