Maison  >  Article  >  interface Web  >  Exemple de tutoriel sur l'obtention du nom du paramètre dans l'URL à l'aide de js

Exemple de tutoriel sur l'obtention du nom du paramètre dans l'URL à l'aide de js

零下一度
零下一度original
2017-06-24 13:49:301176parcourir
Il est rare d'utiliser js pour obtenir les noms et valeurs des paramètres​​dans 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn