String segmentation analysis.
Here is a get URL +? The JAVASCRIPT client solution with the QUESTRING parameter is equivalent to asp's request. querystring, PHP's $ _ GET
Function:
<Script> Function GetRequest () { Var url = location. search; // get the url "? "Character String Var theRequest = new Object (); If (url. indexOf ("? ")! =-1) { Var str = url. substr (1 ); Strs = str. split ("&"); For (var I = 0; I <strs. length; I ++) { TheRequest [strs. Split ("=") [0] = unescape (strs. Split ("=") [1]); } } Return theRequest; } </Script> |
Then, we can call this function to obtain the corresponding parameter values:
<Script> Var Request = new Object (); Request = GetRequest (); Var parameter 1, parameter 2, parameter 3, parameter N; Parameter 1 = Request ['parameter 1']; Parameter 2 = Request ['parameter 2']; Parameter 3 = Request ['parameter 3']; Parameter N = Request ['parameter n']; </Script> |
Obtain the parameter with the same name in the url string.
Ii. Regular Expression Analysis.
Function GetQueryString (name) { Var reg = new RegExp ("(^ | &)" + name + "= ([^ &] *) (& | $ )"); Var r = window. location. search. substr (1). match (reg ); If (r! = Null) return unescape (r [2]); return null; } Alert (GetQueryString ("parameter name 1 ")); Alert (GetQueryString ("parameter name 2 ")); Alert (GetQueryString ("parameter name 3 ")); |
Function fQueryString (sKey, bDecode, sLocationSearch, bDebug)
{/* Shawl. qiu code, return string */
Var Debug = bDebug;
If (! SLocationSearch) sLocationSearch = location. search;
If (! SKey) return sLocationSearch;
Var sTemp = sLocationSearch. replace (/^ \? /,"");
If (Debug) alert (sTemp );
If (sTemp = "" & bDebug) throw new Error ("Page sLocationSearch does not have query parameters! ");
Var Ar = sTemp. split ("&"), sFinal = "";
Var iArLen = Ar. length, iArCount = 0;
While (iArCount ++ <iArLen)
{
If (Debug)
{
Alert ("Ar [iArCount-1]. toLowerCase ():" + Ar [iArCount-1]. toLowerCase ());
Alert ("sKey. toLowerCase () + '=':" + sKey. toLowerCase ());
}
Var arQsByPart = Ar [iArCount-1]. split ("= ");
If (arQsByPart [0]. toLowerCase () = sKey. toLowerCase ())
{
If (arQsByPart. length = 1) continue;
SFinal = arQsByPart [1];
If (bDecode) sFinal = decodeURI (sFinal );
Break;
}
}/* End while (iArCount ++ iArLen )*/
If (sFinal = "" & bDebug) throw new Error ("no key for" + sKey +! ");
Return sFinal;
}/* End function fQueryString */