网址解析函数(一)

近期有个项目需要对网址进行解析,查了下网络上的一些解析单元都不是理想,先将需要的函数写出来,后期根据需要再进行完善!

本单元只有2个功能,一个是解析主域名,一个是当前域名

好处在于可以分辨出域名是否是双后缀的

unit UrlBase;
{
2015-2-25
本单元主要用于解析网址,测试网址
http://www.cnblogs.com/sishen/p/4297303.html
}

interface

Uses System.SysUtils;

Const
  //记录后缀域名是2位的
  DomainClass : array[1..40] of string= (‘com.cn‘,‘net.cn‘,‘org.cn‘,‘gov.cn‘,
                                        ‘mo.cn‘,‘ac.cn‘,‘bj.cn‘,‘sh.cn‘,
                                        ‘tj.cn‘,‘cq.cn‘,‘he.cn‘,‘sx.cn‘,
                                        ‘nm.cn‘,‘ln.cn‘,‘jl.cn‘,‘hl.cn‘,
                                        ‘js.cn‘,‘zj.cn‘,‘ah.cn‘,‘fj.cn‘,
                                        ‘jx.cn‘,‘sd.cn‘,‘ha.cn‘,‘hb.cn‘,
                                        ‘hn.cn‘,‘gd.cn‘,‘gx.cn‘,‘hi.cn‘,
                                        ‘sc.cn‘,‘gz.cn‘,‘yn.cn‘,‘gs.cn‘,
                                        ‘qh.cn‘,‘nx.cn‘,‘xj.cn‘,‘tw.cn‘,
                                        ‘hk.cn‘,‘com.tw‘,‘com.hk‘,‘cn.com‘);
//获取主域名函数:GetMainDoMain
//比如:http://www.cnblogs.com/sishen/p/4297303.html
//获取结果: cnblogs.com
function GetMainDoMain(Url:String):String;

//获取当前域名函数:GetCurrentDoMain
//比如:http://www.cnblogs.com/sishen/p/4297303.html
//获取结果: www.cnblogs.com
function GetCurrentDoMain(Url:String):String;

implementation

//判断数组是否存在指定字符
function AnsiIndexText(const AText: string; const AValues: array of string): Integer;
var
  I: Integer;
begin
  Result := -1;
  for I := Low(AValues) to High(AValues) do
  if AnsiSameText(AText, AValues[I]) then begin
    Result := I;
    Break;
  end;
end;

//查询字符在字符串出现次数
function StrPosCount(subs:string;source:string):integer;
var
  Str : string;
begin
  Result := 0;
  str := source;
  while Pos(Subs,Str)<>0 do begin
    Delete(Str,Pos(Subs,Str),Length(Subs));
    Inc(Result);
  end;
end;

function LeftStr(Const Str: String; Size: Word): String;
begin
  LeftStr := Copy(Str, 1, Size)
end;

function GetMainDoMain(Url:String):String;
Var
  Str:String;
begin
  If Leftstr(LowerCase(Url),7) = ‘http://‘ then Delete(Url,1,7);  //去除http://
  If Pos(‘/‘,Url) <> 0 then Delete(Url,Pos(‘/‘,Url),Length(Url)); //去除主域名以外的字符
  While StrPosCount(‘.‘,Url) <> 1 do begin //循环,直到获取最后2位
    Str:=Copy(Url,1,Pos(‘.‘,Url)-1);
    Delete(Url,1,Pos(‘.‘,Url));
  end;
  if AnsiIndexText(Url,DomainClass) <> -1 then Url:=Format(‘%s%s%s‘,[Str,‘.‘,Url]);
  Result:= Url;
end;

function GetCurrentDoMain(Url:String):String;
begin
  If Leftstr(LowerCase(Url),7) = ‘http://‘ then Delete(Url,1,7);  //去除http://
  If Pos(‘/‘,Url) <> 0 then Delete(Url,Pos(‘/‘,Url),Length(Url)); //去除主域名以外的字符
  Result:= Url;
end;

end.
时间: 2024-08-08 16:24:50

网址解析函数(一)的相关文章

【网址】数学网址大全

中文数学专业网站:博士家园http://www.math.org.cnhttp://www.bossh.net 数理逻辑.数学基础:http://www.disi.unige.it/aila/eindex.html意大利逻辑及其应用协会的主页,包括意大利数理逻辑领域的相关内容. http://www.plenum.com/title.cgi?2110<代数与逻辑>,<西伯利亚代数与逻辑期刊>的翻译版,荷兰的Kluwer学术出版社提供其在线服务. http://forum.swart

网址和域名、用户点击浏览器的整个过程

1.网址和域名: 从形式上来看,网址比域名多了一个前缀"www.",比方说百度的网址是"www.baidu.com",而"baidu.com"则是域名,不管网址还是域名都可以通过地址栏输入直达网站.但是也有一些例外的情况,案例在这里已经想不起来了,直接输入域名无法打开网站,必须要在前面加"www." 网址是相对通俗一点的说法,而域名则是专业一点的,当然这只是过去的情况,互联网的发展已经经历了很长一段时间,网民的网络知识也得到了

【转】Asp.net MVC定义短网址

在MVC的逻辑代码里,Controller和Action是必须的,但是在网址里,并不需要完全体现Controller和Action.比如我们经常希望看到http://localhost/About而不是http://localhost/Home/About. 默认的路由规则 新建MVC应用程序后,Global.asax里默认注册的路由规则是: ? public static void RegisterRoutes(RouteCollection routes)         {        

selenium2+python自动化2-打开火狐输入百度网址

前提是要把自动化环境搭建好了 用Python调用webdriver框架的API,自动打开火狐浏览器,自动输入百度网址 1.第一步:从selenium里面导入webdriver模块2.打开Firefox浏览器3.打开百度网址

js禁止微信浏览器下拉显示黑底查看网址,不影响内部Scroll

开发项目跑在微信浏览器经常会遇到一个问题,微信浏览器下拉的时候会出现自带的黑色底色(显示网址)如下图: 网上好多js禁止操作的做法禁止了内部Scroll,导致页面不能滚动,上拉加载失效,例如这种做法: $('body').on('touchmove', function (event) {event.preventDefault();}); or document.addEventListener('touchmove', function(e){e.preventDefault()}, fal

vue-devtools安装以后,勾选了“允许访问文件网址”之后还是无法使用

勾选了"允许访问文件网址",还是无法使用: Vue.js is detected on this page. Devtools inspection is not available because it's in production mode or explicitly disabled by the author 在vue-devtools的github中有这样一句说明: If the page uses a production/minified build of Vue.js

Oracle正则表达式之匹配网址

利于正则表达式匹配出网址 --1 表准备create table test_regexp( object varchar2(50)); --2 数据准备 insert into test_regexp (OBJECT)values ('http://www.baidu.com'); insert into test_regexp (OBJECT)values ('http://360.cn'); insert into test_regexp (OBJECT)values ('https://h

定义一个方法get_page(url),url参数是需要获取网页内容的网址,返回网页的内容。提示(可以了解python的urllib模块)

1 定义一个方法get_page(url),url参数是需要获取网页内容的网址,返回网页的内容.提示(可以了解python的urllib模块) 2 import urllib.request 3 4 def get_page(url): 5 response = urllib.request.urlopen(url) 6 html = response.read() 7 return html 8 9 print(get_page(url='https://www.baidu,com'))

Python生成二维码和短网址

使用PyQt5. 方便电脑传输网址或者文字内容到手机上面,扫一下二维码就行了,短网址偶尔也能用上. 1 #!/usr/bin/env python3 2 from PyQt5.QtGui import QPixmap 3 from PyQt5 import QtWidgets 4 from PyQt5.QtCore import Qt 5 import requests 6 from os.path import expanduser 7 8 9 class Ui_qrDlg(): 10 11