【发布时间】:2010-12-21 10:21:21
【问题描述】:
有没有人知道一个函数可以在不使用任何 JSNI 的情况下在 GWT java 中验证 url 是否有效
【问题讨论】:
标签: java validation url gwt
有没有人知道一个函数可以在不使用任何 JSNI 的情况下在 GWT java 中验证 url 是否有效
【问题讨论】:
标签: java validation url gwt
我正在使用这个(使用正则表达式):
private RegExp urlValidator;
private RegExp urlPlusTldValidator;
public boolean isValidUrl(String url, boolean topLevelDomainRequired) {
if (urlValidator == null || urlPlusTldValidator == null) {
urlValidator = RegExp.compile("^((ftp|http|https)://[\\w@.\\-\\_]+(:\\d{1,5})?(/[\\w#!:.?+=&%@!\\_\\-/]+)*){1}$");
urlPlusTldValidator = RegExp.compile("^((ftp|http|https)://[\\w@.\\-\\_]+\\.[a-zA-Z]{2,}(:\\d{1,5})?(/[\\w#!:.?+=&%@!\\_\\-/]+)*){1}$");
}
return (topLevelDomainRequired ? urlPlusTldValidator : urlValidator).exec(url) != null;
}
【讨论】:
google.com/ 上返回 false ——但它在 http://google.com/ 上返回 true(带有或不带有斜杠)。根据 URL 的定义,schema 前缀(例如'http')后跟:// 是强制性的,因此google.com 是无效的。
http://,但我完全有可能忘记了! (+1)
https://xyz.com/getUser.action?id=1&pwd=2
org.apache.commons.validator.UrlValidator 和静态方法 isValid(String url) 在这里可能会有所帮助。
【讨论】:
您应该在 GWT 中使用正则表达式。这是Regex in GWT to match URLs和Regular Expressions and GWT类似的主题
【讨论】: