Es kommt selten vor, dass js zum Abrufen der Parameternamen und -werte in der URL verwendet wird, aber ich muss dies heute tun, um Ihnen die spezifische Beispielmethode vorzustellen.
Wenn der Parametername bekannt ist, kann der Parameterwert einfach mithilfe regulärer Ausdrücke ermittelt werden.
Die Implementierungsmethode von js lautet wie folgt:
Der Code lautet wie folgt
代码如下 |
|
function getValue(url, name) { var reg = new RegExp('(?|&)' + name + '=([^&?]*)', 'i'); var arr = url.match(reg);
if (arr) { return arr[2]; }
return null; }
|
|
function getValue(url, name) { var reg = new RegExp('(?| &)' + name + '=([^&?]*)', 'i'); var arr = url.match(reg);
if (arr) { return arr[2];
代码如下 |
|
function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }
这样调用:
alert(GetQueryString("参数名1")); alert(GetQueryString("参数名2")); alert(GetQueryString("参数名3"));
|
} return null;}
|
oder
代码如下 |
|
function getKeyValue(url) { var result = {}; var reg = new RegExp('([?|&])(.+?)=([^&?]*)', 'ig'); var arr = reg.exec(url);
while (arr) { result[arr[2]] = arr[3];
arr = reg.exec(url); }
return result; }
|
Methode 1: Regelmäßige Analyse
Der Code lautet wie folgt |
代码如下 |
|
function getKeyValue($url) { $result = array(); $mr = preg_match_all('/(?|&)(.+?)=([^&?]*)/i', $url, $matchs);
if ($mr !== FALSE) { for ($i = 0; $i < $mr; $i++) { $result[$matchs[2][$i]] = $matchs[3][$i]; } }
return $result; }
|
|
function getQueryString(name) { var reg = new RegExp("(^|&)" + name + " =([^&]*) (&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2 ]); return null; (GetQueryString("Parameter name 2") );alert(GetQueryString("Parameter name 3")); |
Wenn Sie Wenn Sie alle Parameternamen und ihre entsprechenden Werte erhalten möchten, können Sie auch die reguläre Ausdrucksmethode js-Implementierungsmethode verwenden:
Der Code lautet wie folgt |
|
function getKeyValue(url) { var result = {}; var reg = new RegExp('([?|&])(.+?)=([^&?]*)', 'ig'); var arr = reg.exec(url); while (arr) { result[arr[2]] = arr[3]; arr = reg.exec(url ); } Ergebnis zurückgeben;} |
Beachten Sie, dass für den Abgleich eine andere Methode verwendet wird in js heißt match. Und exec ist eine Methode des RegExp-Objekts. Wenn Sie die Match-Methode einer Zeichenfolge verwenden und den regulären Ausdruck als globale Übereinstimmung angeben, ist die Gruppierung im regulären Ausdruck nutzlos und das zurückgegebene Ergebnis besteht aus allen Teilzeichenfolgen, die mit dem regulären Ausdruck übereinstimmen. Wenn die exec-Methode das globale Match-Flag nicht verwendet, ist die zurückgegebene Zeit das erste übereinstimmende Unterzeichen. Wenn das globale Match-Flag verwendet wird, wird die Zeichenfolge, die mit dem Symbol übereinstimmt, zum ersten Mal von Anfang an ausgeführt beginnt mit dem letzten übereinstimmenden Ergebnis. Das Folgende stellt die Implementierungsmethode von PHP bereit:
Der Code lautet wie folgt | tr>
function getKeyValue($url) { $result = array(); $mr = preg_match_all ('/(? |&)(.+?)=([^&?]*)/i', $url, $matches); if ($mr !== FALSE) { für ($ i = 0; $i < $mr; $i++) { $result[$matchs[2][$i]] = $matchs[3][$i]; } } return $result;} |
Die preg_match_all-Methode von PHP speichert die passenden Ergebnisse im Der dritte angegebene Parameter ist ein zweidimensionales Array. Die erste Dimension ist ein Array von Gruppierungsinformationen, das heißt, das erste Array speichert alle übereinstimmenden vollständigen Zeichenfolgen, das zweite Array speichert den Wert, der der ersten () entspricht, und die zweite Dimension ist der Gruppierungswert.
Das obige ist der detaillierte Inhalt vonBeispiel-Tutorial zum Abrufen des Parameternamens in der URL mithilfe von js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!