public class UrlValidator extends Object implements Serializable
URL Validation routines.
Behavior of validation is modified by passing in options:Originally based in on php script by Debbie Dyer, validation.php v1.2b, Date: 03/07/02, http://javascript.internet.com. However, this validation now bears little resemblance to the php original.
Example of usage:
Construct a UrlValidator with valid schemes of "http", and "https".
String[] schemes = {"http","https"}.
UrlValidator urlValidator = new UrlValidator(schemes);
if (urlValidator.isValid("ftp://foo.bar.com/")) {
System.out.println("url is valid");
} else {
System.out.println("url is invalid");
}
prints "url is invalid"
If instead the default constructor is used.
UrlValidator urlValidator = new UrlValidator();
if (urlValidator.isValid("ftp://foo.bar.com/")) {
System.out.println("url is valid");
} else {
System.out.println("url is invalid");
}
prints out "url is valid"
| Modifier and Type | Field and Description |
|---|---|
static long |
ALLOW_2_SLASHES
Allow two slashes in the path component of the URL.
|
static long |
ALLOW_ALL_SCHEMES
Allows all validly formatted schemes to pass validation instead of
supplying a set of valid schemes.
|
static long |
ALLOW_LOCAL_URLS
Allow local URLs, such as http://localhost/ or http://machine/ .
|
static long |
NO_FRAGMENTS
Enabling this options disallows any URL fragments.
|
| Constructor and Description |
|---|
UrlValidator()
Create a UrlValidator with default properties.
|
UrlValidator(long options)
Initialize a UrlValidator with the given validation options.
|
UrlValidator(RegexValidator authorityValidator,
long options)
Initialize a UrlValidator with the given validation options.
|
UrlValidator(String[] schemes)
Behavior of validation is modified by passing in several strings options:
|
UrlValidator(String[] schemes,
long options)
Behavior of validation is modified by passing in options:
|
UrlValidator(String[] schemes,
RegexValidator authorityValidator,
long options)
Customizable constructor.
|
UrlValidator(String[] schemes,
RegexValidator authorityValidator,
long options,
DomainValidator domainValidator)
Customizable constructor.
|
| Modifier and Type | Method and Description |
|---|---|
protected int |
countToken(String token,
String target)
Returns the number of times the token appears in the target.
|
static UrlValidator |
getInstance()
Returns the singleton instance of this class with default schemes and options.
|
boolean |
isValid(String value)
Checks if a field has a valid url address.
|
protected boolean |
isValidAuthority(String authority)
Returns true if the authority is properly formatted.
|
protected boolean |
isValidFragment(String fragment)
Returns true if the given fragment is null or fragments are allowed.
|
protected boolean |
isValidPath(String path)
Returns true if the path is valid.
|
protected boolean |
isValidQuery(String query)
Returns true if the query is null or it's a properly formatted query string.
|
protected boolean |
isValidScheme(String scheme)
Validate scheme.
|
public static final long ALLOW_ALL_SCHEMES
public static final long ALLOW_2_SLASHES
public static final long NO_FRAGMENTS
public static final long ALLOW_LOCAL_URLS
RegexValidator instead (UrlValidator(RegexValidator, long))public UrlValidator()
public UrlValidator(String[] schemes)
schemes - Pass in one or more url schemes to consider valid, passing in
a null will default to "http,https,ftp" being valid.
If a non-null schemes is specified then all valid schemes must
be specified. Setting the ALLOW_ALL_SCHEMES option will
ignore the contents of schemes.public UrlValidator(long options)
options - The options should be set using the public constants declared in
this class. To set multiple options you simply add them together. For example,
ALLOW_2_SLASHES + NO_FRAGMENTS enables both of those options.public UrlValidator(String[] schemes, long options)
schemes - The set of valid schemes. Ignored if the ALLOW_ALL_SCHEMES option is set.options - The options should be set using the public constants declared in
this class. To set multiple options you simply add them together. For example,
ALLOW_2_SLASHES + NO_FRAGMENTS enables both of those options.public UrlValidator(RegexValidator authorityValidator, long options)
authorityValidator - Regular expression validator used to validate the authority part
This allows the user to override the standard set of domains.options - Validation options. Set using the public constants of this class.
To set multiple options, simply add them together:
ALLOW_2_SLASHES + NO_FRAGMENTS
public UrlValidator(String[] schemes, RegexValidator authorityValidator, long options)
schemes - the set of valid schemes. Ignored if the ALLOW_ALL_SCHEMES option is set.authorityValidator - Regular expression validator used to validate the authority partoptions - Validation options. Set using the public constants of this class.
To set multiple options, simply add them together:
ALLOW_2_SLASHES + NO_FRAGMENTS
public UrlValidator(String[] schemes, RegexValidator authorityValidator, long options, DomainValidator domainValidator)
schemes - the set of valid schemes. Ignored if the ALLOW_ALL_SCHEMES option is set.authorityValidator - Regular expression validator used to validate the authority partoptions - Validation options. Set using the public constants of this class.
To set multiple options, simply add them together:
ALLOW_2_SLASHES + NO_FRAGMENTS
domainValidator - the DomainValidator to use; must agree with ALLOW_LOCAL_URLS settingpublic static UrlValidator getInstance()
public boolean isValid(String value)
Checks if a field has a valid url address.
Note that the method calls #isValidAuthority() which checks that the domain is valid.value - The value validation is being performed on. A null
value is considered invalid.protected boolean isValidScheme(String scheme)
scheme - The scheme to validate. A null value is considered
invalid.protected boolean isValidAuthority(String authority)
null authority value is considered invalid.
Note: this implementation validates the domain unless a RegexValidator was provided.
If a RegexValidator was supplied and it matches, then the authority is regarded
as valid with no further checks, otherwise the method checks against the
AUTHORITY_PATTERN and the DomainValidator (ALLOW_LOCAL_URLS)authority - Authority value to validate, alllows IDNprotected boolean isValidPath(String path)
null value is considered invalid.path - Path value to validate.protected boolean isValidQuery(String query)
query - Query value to validate.protected boolean isValidFragment(String fragment)
fragment - Fragment value to validate.Copyright © 2002–2020 The Apache Software Foundation. All rights reserved.