域名提取和一级域名提交(JavaScript):
需要过滤的部分主域名如下:
topDomain = [".com", ".net", ".org", ".edu", ".info", ".biz", ".name", ".aero" , ".info", ".pro", ".cn", ".hk", ".tw"];
url = "http://www.3f6q.com:30024/wz/412.apk?tk=a2V5cz13ei1hbGwteQ==&sid=412&xzdzlx=dzb";
// 域名提取
function domain_substr(url){
var pos = 0;
var maxPos = 0;
var l = 0;
for(i=0, len = topDomain.length; i < len; i++) {
pos = url.indexOf(topDomain[i]);
if(pos > maxPos) {
maxPos = pos;
l = topDomain[i].length;
}
}
var httpPos = 0;
domainPos = url.indexOf("//");
if(domainPos > 0) {
httpPos = domainPos;
httpPos = httpPos + 2;
}
return url.substring(httpPos, maxPos + l);
}
// 主域名提取
function main_domain_sub(url) {
var pos = 0;
var maxPos = 0;
var newPos = 65535;
var l = 0;
// 查找索引
for(i=0, len = topDomain.length; i < len; i++) {
pos = url.indexOf(topDomain[i]);
if(pos < 0) {
continue;
}
// 查找最远域名
if(pos > maxPos) {
maxPos = pos;
l = topDomain[i].length;
}
// 查找最近域名
if (pos < newPos) {
newPos = pos;
}
}
// 倒序查找最近的"."
var begPos = 0
var dot_pos = url.lastIndexOf(".", newPos-1)
// 未找到"."
if (dot_pos < 0) {
var n = 0;
n = url.indexOf("//")
if (n < 0) {
dot_pos = 0;
} else {
dot_pos = n + 2;
}
begPos = dot_pos;
} else {
// 已找到"."
begPos = dot_pos + 1;
}
return url.substring(begPos, maxPos + l);
}
//主域名提取
console.log(main_domain_sub(url))
//普通域名提取
console.log(domain_substr(url))