Last active
April 7, 2017 07:15
-
-
Save yuqianma/cb749f5aed92a61ebeff329fa2e36304 to your computer and use it in GitHub Desktop.
[parse url] hash search url
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// parseSearch('?gws_rd=ssl') | |
// {gws_rd: "ssl"} | |
function parseSearch (str) { | |
str = str.split('?').pop() | |
var search = {} | |
str && str.replace( | |
/([^?=&]+)(=([^&]*))?/g, | |
function ($0, $1, $2, $3) { | |
search[ $1 ] = $3 | |
} | |
) | |
return search | |
} | |
function parseHash () { | |
// [wholeStr, hash, search] | |
var strArr = window.location.hash.match(/#([^\?]*)(\?.*)?/); | |
var objURL = { | |
hash: strArr && strArr[1], | |
search: {} | |
}; | |
strArr && strArr[2] && strArr[2].replace( | |
/([^?=&]+)(=([^&]*))?/g, | |
function ($0, $1, $2, $3) { | |
objURL.search[ $1 ] = $3 | |
} | |
); | |
return objURL | |
} | |
// parseHash2('http://abc.com#new?at=32&raw') | |
// {hash: "new", search: {at: "32", raw: undefined}} | |
function parseHash2 (str) { | |
// [wholeStr, hash, search] | |
var strArr = str.match(/#([^\?]*)(\?.*)?/); | |
var objURL = { | |
hash: strArr && strArr[1], | |
search: {} | |
}; | |
if (strArr) { | |
objURL.search = parseSearch(strArr[2]) | |
} | |
return objURL | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment