萌主Web小课堂-域名抓取算法分享

萌丞
773 4

生活中我们会遇到很多需要输入域名的查询框,例如我们所熟知的腾讯网址安全检测,站长之家SEO查询等,实际上萌国ICP备案的查询页面也存在一个查询框,而且某种程度上而言并不“完美”,例如以下场景

洛娜娜爆炒栗子在线直播:https://domainname.linguistics/videoshare/?q=114514 *激情四射666

算法

于是我们就需要一个简单的域名匹配算法

var inputElement = document.querySelector(".search-form input[name='keyword']");
document.querySelector(".search-form").addEventListener("submit", function(event) {
    var keyword = inputElement.value.trim(); // 去除首尾空格
    // 先截断到http或https的位置
    var startIndex = keyword.indexOf("http");
    if (startIndex !== -1) {
        keyword = keyword.substring(startIndex);
    }
    // 匹配并提取域名部分
    var domainMatch = keyword.match(/^(?:https?:\/\/)?(?:[^/]*@)?([^:/?#]+)/i);
    if (domainMatch) {
        var extractedDomain = domainMatch[1];
        inputElement.value = extractedDomain;
        //console.log("提取的域名部分:", extractedDomain);
    }
});

演示页面

https://travel.moe/search.html

为什么主站不用呢?

因为 不可以奇奇怪怪!!!

 

山在虚无缥缈间
最新回复 ( 4 )
  • 2
    1
    我看不懂,但我大受震撼
  • 3
    1
    trim
    一下然后正则匹配,http打头,可以没有s,按分组捕获的。
    但是那个@没有看懂,为啥url里还匹配@
  • 萌丞 @Ta
    4
    0
    野兽先辈 trim 一下然后正则匹配,http打头,可以没有s,按分组捕获的。 但是那个@没有看懂,为啥url里还匹配@

    哦对,@是没必要⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄.不过这样倒是误打误撞可以匹配邮箱了

  • 5
    0
    野兽先辈 trim 一下然后正则匹配,http打头,可以没有s,按分组捕获的。 但是那个@没有看懂,为啥url里还匹配@
    应该是http身份认证之类的吧
  • 游客
    6

    您需要登录后才可以回帖

    登录 注册

发新帖