美文网首页
一道腾讯手写题,如何判断 url 中只包含 qq.com

一道腾讯手写题,如何判断 url 中只包含 qq.com

作者: an_371e | 来源:发表于2021-05-16 20:58 被阅读0次

    例如:

    http://www.qq.com  // 通过
    
    http://www.qq.com.cn  // 不通过
    
    http://www.qq.com/a/b  // 通过
    
    http://www.qq.com?a=1  // 通过
    
    http://www.123qq.com?a=1  // 不通过
    

    解答:正则

    function check(url){
      if(/\/\/w+\.qq\.com[^.]*$/.test(url)){
        return true;
      }else{
        return false;
      }
    
    }
    check('http://www.qq.com')
    // true
    
    check('http://www.qq.com.cn')
    // false
    
    check('http://www.qq.com/a/b')
    // true
    
    check('http://www.qq.com?a=1')
    // true
    
    check('http://www.123qq.com?a=1')
    // false
    

    这个正则很简单,包含 .qq.com 就可以,但是有一种情况,如果域名不是包含 qq.com 而仅仅是参数后面包含了 qq.com 怎么办?例如 http://www.baidu.com?redirect=http://www.qq.com/a

    check('http://www.baidu.com?redirect=http://www.qq.com/a')
    // true
    

    如何排除这种情况?

    function check(url){
      if(/^https?:\/\/w+\.qq\.com[^.]*$/.test(url)){
        return true;
      }else{
        return false;
      }
    
    }
    check('http://www.qq.com')
    // true
    
    check('http://www.qq.com.cn')
    // false
    
    check('http://www.qq.com/a/b')
    // true
    
    check('http://www.qq.com?a=1')
    // true
    
    check('http://www.123qq.com?a=1')
    // false
    
    check('http://www.baidu.com?redirect=http://www.qq.com/a')
    // true
    

    若有收获,就点个赞吧

    每天三分钟,进阶一个前端小 tip
    面试题库
    算法题库

    相关文章

      网友评论

          本文标题:一道腾讯手写题,如何判断 url 中只包含 qq.com

          本文链接:https://www.haomeiwen.com/subject/muwrjltx.html