将域添加到 apache.commons 中的 UrlValidator

Ian*_*Ian 2 java url apache-commons url-validation

所以我正在使用 Commons UrlValidator (org.apache.commons.validator.routines.UrlValidator),我想知道是否有一种方法可以自定义它允许的域。现在似乎只允许 TLD,但我希望有一两个有效的名称不在该列表中,例如“.corp”(列表可在此处找到:http://data.iana.org/TLD/tlds-alpha -by-domain.txt)。是否有一种设置或解决方法,以便我不必创建自己的 url 验证器,并且可以将其与添加的域一起使用?

Ste*_*ORT 5

您可以在下面找到 JUnit 测试用例。

import org.apache.commons.validator.routines.DomainValidator;
import org.apache.commons.validator.routines.UrlValidator;

class UrlValidatorTestCase extends TestCase {

  private static final String[] GENERIC_TLDS_PLUS = new String[] { "corp" };

  static {
    DomainValidator.updateTLDOverride(DomainValidator.ArrayType.GENERIC_PLUS, GENERIC_TLDS_PLUS);
  }

  public void test_UrlValidator_isValid_corp_tld() {
    assertTrue(UrlValidator.getInstance().isValid("http://domainlabel.corp"));
  }
}
Run Code Online (Sandbox Code Playgroud)

使用 commons-validator 1.6 进行测试