根据给定的url获取域名

/*
 *    功能:  通过url获取 顶级域名
 *    方法名: fIsUrl
 *      所属类: guyu.util
 *    参数:  sUrl 获取网址的url地址
 *     返回值: 返回顶级域名字符串    如果sUrl有问题或匹配不到顶级域名返回 ''
 */
guyu.util.fGetDomain=function(sUrl){
var sDomain='';
var rDomain=/([a-zA-Z0-9-]+)(.com\b|.net\b|.edu\b|.miz\b|.biz\b|.cn\b|.cc\b|.org\b){1,}/g;
if(guyu.util.fIsUrl(sUrl)){
sDomain=sUrl.match(rDomain);
}
return sDomain;

}



测试结果:

http://www.qhrb.com.cn/        qhrb.com.cn

http://www.gtja.com/i/     gtja.com

http://www.10jqka.com.cn/   10jqka.com.cn

        http://news.cnstock.com/   cnstock.com

  http://finance.qq.com/   qq.com

### Java中从URL中提取域名的方法 在Java中可以从URL中提取域名,通常有多种方法实现这一功能。以下是几种常见的解决方案: #### 方法一:通过`java.net.URL`类解析主机名 利用`java.net.URL`类可以直接获取URL中的主机部分(即域名)。这种方法简单高效。 ```java public static String getDomainName(String url) { try { String domain = new java.net.URL(url).getHost(); if (domain != null && domain.startsWith("www.")) { domain = domain.substring(4); // 去掉前缀 www. } return domain; } catch (java.net.MalformedURLException e) { throw new RuntimeException("Invalid URL format", e); } } ``` 此代码片段能够处理大多数标准的URL输入,并返回其对应的域名[^1]。 #### 方法二:基于正则表达式的匹配方式 如果需要更灵活的方式或者希望兼容更多复杂的场景,则可以通过编写自定义正则表达式来完成任务。 ```java import java.util.regex.Matcher; import java.util.regex.Pattern; public class DomainExtractor { private static final String DOMAIN_REGEX = "(http|https)://([^/]+)"; public static String extractDomain(String urlString) { Pattern pattern = Pattern.compile(DOMAIN_REGEX); Matcher matcher = pattern.matcher(urlString); if (matcher.find()) { String fullMatch = matcher.group(2); if (fullMatch.startsWith("www.")) { return fullMatch.substring(4); } return fullMatch; } return ""; } } ``` 该方案适用于那些可能包含额外路径参数或其他复杂结构的情况下的URL字符串解析工作[^3]。 #### 方法三:考虑国际化顶级域(Internationalized Top-Level Domains) 对于一些特殊形式如带有连字符(-),或者是国家代码结尾(.co.uk,.gov.cn等等),还需要进一步增强我们的逻辑判断能力以确保准确性. ```java private static final String ROOT_DOMAIN_PATTERN = "(?:[a-zA-Z0-9_-]{1,63}\\.)*" + "[a-zA-Z0-9][a-zA-Z0-9_-]*\\.[a-zA-Z]{2,}"; public static boolean isValidRootDomain(String candidate){ return Pattern.matches(ROOT_DOMAIN_PATTERN,candidate); } // 使用isValidRootDomain函数验证得到的结果是否有效... if(isValidRootDomain(domain)){ System.out.println("有效的根域名"); }else{ System.out.println("无效的根域名"); } ``` 这里提供了一个简单的校验机制用于确认最终获得的是不是一个合理的根级域名[^4]。 以上三种技术都可以帮助开发者有效地解决从给定网址串里抽取目标站点名称的问题。具体选择哪一种取决于实际应用场景以及个人偏好等因素影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值