Il est rare d'utiliser js pour obtenir les noms et valeurs des paramètresdans l'URL, mais je dois le faire aujourd'hui. Laissez-moi vous présenter l'exemple de méthode spécifique.
Lorsque le nom du paramètre est connu, obtenir la valeur du paramètre peut être facilement effectué à l'aide d'expressions régulières.
La méthode d'implémentation de js est la suivante :
Le code est le suivant
代码如下 |
|
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('(?| &)' + nom + '=([^&?]*)', '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;}
|
ou
代码如下 |
|
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; }
|
Méthode 1 : Analyse régulière
Le code est le suivant |
代码如下 |
|
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; }Appelez comme ceci : alert(GetQueryString("Parameter name 1"));alert (GetQueryString("Nom du paramètre 2") );alert(GetQueryString("Nom du paramètre 3")); |
Si vous souhaitez obtenir tous les noms de paramètres et leurs valeurs correspondantes, vous pouvez également utiliser des expressions régulières, méthode d'implémentation js :
Le code est le suivant |
|
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;} |
Notez qu'il existe une autre méthode utilisée pour la correspondance dans js appelé match. Match est une méthode de chaîne et exec est une méthode d'objet RegExp. Si vous utilisez la méthode match d'une chaîne et spécifiez l'expression régulière comme correspondance globale, alors le regroupement dans l'expression régulière sera inutile et le résultat renvoyé sera toutes les sous-chaînes qui correspondent à l'expression régulière. Lorsque la méthode exec n'utilise pas l'indicateur de correspondance globale, l'heure renvoyée est le premier sous-caractère correspondant. Si l'indicateur de correspondance globale est utilisé, la chaîne qui correspond au symbole est exécutée depuis le début pour la première fois. commencera à partir du dernier résultat correspondant. Ce qui suit fournit la méthode d'implémentation de PHP :
Le code est le suivant | tr>
function getKeyValue($url) { $result = array(); $mr = preg_match_all ('/(? |&)(.+?)=([^&?]*)/i', $url, $matchs); if ($mr !== FALSE) { pour ($ i = 0; $i < $mr; $i++) { $result[$matchs[2][$i]] = $matchs[3][$i]; > } return $result;} |
la méthode preg_match_all de php stocke les résultats correspondants dans le troisième spécifié Le paramètre est un tableau à deux dimensions. La première dimension est un tableau d'informations de regroupement, c'est-à-dire que le premier tableau stocke toutes les chaînes complètes correspondantes, le deuxième tableau stocke la valeur correspondant au premier () et la deuxième dimension est la valeur de regroupement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!