Getting parts of a URL (Regex)

后端 未结 26 2206
说谎
说谎 2020-11-22 02:13

Given the URL (single line):
http://test.example.com/dir/subdir/file.html

How can I extract the following parts using regular expressions:

  1. The Subd
26条回答
  •  一生所求
    2020-11-22 03:12

    //USING REGEX
    /**
     * Parse URL to get information
     *
     * @param   url     the URL string to parse
     * @return  parsed  the URL parsed or null
     */
    var UrlParser = function (url) {
        "use strict";
    
        var regx = /^(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/,
            matches = regx.exec(url),
            parser = null;
    
        if (null !== matches) {
            parser = {
                href              : matches[0],
                withoutHash       : matches[1],
                url               : matches[2],
                origin            : matches[3],
                protocol          : matches[4],
                protocolseparator : matches[5],
                credhost          : matches[6],
                cred              : matches[7],
                user              : matches[8],
                pass              : matches[9],
                host              : matches[10],
                hostname          : matches[11],
                port              : matches[12],
                pathname          : matches[13],
                segment1          : matches[14],
                segment2          : matches[15],
                search            : matches[16],
                hash              : matches[17]
            };
        }
    
        return parser;
    };
    
    var parsedURL=UrlParser(url);
    console.log(parsedURL);
    

提交回复
热议问题