Il est possible en JavaScript de récupérer les paramètres d'une URL. On se basera sur l'attribut window.location.search qui retourne la chaîne de caractères contenant ces paramètres.
Les paramètres d'URL sont des variables que l'on va utiliser pour transmettre au site web des informations que l'on va utiliser dans le traitement de la page. La liste des paramètres commence dans une URL avec le caractère ?. Les variables suivent ensuite la forme variable=valeur et sont séparées par le caractère &.
//Exemple d'url avec des paramètres
http://www.exemple.com/recherche.php?nom=toto&age=15&ville=paris
Il est possible en
JavaScript
de récupérer les paramètres d'une URL. On se basera sur l'attribut window.location.search qui retourne la chaîne de caractères contenant les paramètres de l'URL. Une fois cette chaîne récupérée, il faudra obtenir la valeur de l'attribut en fonction de son nom. On sait que le nom est précédé du caractère ? ou &, qu'il est suivi du signe =, et que l'on trouve ensuite la valeur, suivie soit du signe &, annonçant une autre variable, soit de la fin de la chaîne.
Une fois la valeur récupérée, on remplace le caractère + par une espace (car les espaces sont transformées en signes + dans une URL) et on applique la méthode decodeURIComponent() sur la chaîne. Cette méthode remplace les caractères spéciaux encodés dans une URL par leur forme originale. C'est notamment le cas pour les caractères accentués.
function getParameterByName(name)
name = name.replace(/[[]/, [).replace(/[]]/, ]);
var regexS = [?&] + name + =([^&#]*);
var regex = new RegExp(regexS);
var results = regex.exec(window.location.search);
if(results == null)
return ;
return decodeURIComponent(results[1].replace(/+/g, ));
Si vous souhaitez plutôt utiliser une fonction qui transforme directement les paramètres de l'URL en tableau associatif, alors il faudra faire une boucle avec la méthode search() de la classe Regex. Cette méthode permet de chercher la prochaine occurrence d'une
expression régulière
.
function getParameters()
var urlParams,
match,
pl = /+/g, // Regex for replacing addition symbol with a space
search = /([^&=]+)=?([^&]*)/g,
decode = function (s) { return decodeURIComponent(s.replace(pl, )); },
query = window.location.search.substring(1);
urlParams = {};
while (match = search.exec(query))
urlParams[decode(match[1])] = decode(match[2]);
return urlParams;
Comment corriger le message d'erreur "All component children of <Routes> must be a <Route> or <React.Fragment>"
Comment valider un nombre décimal en JavaScript ?
Comment scinder une chaîne de caractères (string) en jQuery ou JavaScript ?
Comment fixer le composant image suivant à une hauteur de 100% ?
React.js: comment corriger l'erreur de dépendance lors de l'utilisation de useEffect ?
Test Jest : corriger l'erreur Async callback was not invoked within the 5000 ms timeout specified by jest.setTimeout ?
React : comment utiliser la méthode componentWillMount() dans un Hook ?
Axios cors
Mapdispatchtoprops
Écrire et lire un cookie en JavaScript
Obtenir les valeurs de la chaîne (string) d'une requête en JavaScript
Comment formater des nombres au format monétaire en JavaScript ?
A component is changing an uncontrolled input to be controlled
Uncaught error: objects are not valid as a react child
Can't perform a react state update on an unmounted component.
Cannot find module 'sass'
Comment tester une fonction qui devrait générer une erreur dans Jest ?
React.js : comment résoudre l'erreur Attempted import error: 'combineReducers' ?
Did you register the component correctly? : comment corriger cette erreur dans Vue.js ?
React / TypeScript : quel est le type enfant (children type) ?
Comment configurer les props d'un composant React par défaut ?
Les informations recueillies sont destinées à CCM Benchmark Group pour vous assurer l'envoi de votre newsletter.
Elles seront également utilisées sous réserve des options souscrites, par CCM Benchmark Group à des fins de ciblage publicitaire et prospection commerciale au sein du Groupe Le Figaro, ainsi qu’avec nos partenaires commerciaux.
Lors de votre inscription sur ce formulaire, des données personnelles (dont votre adresse email sous forme hachée et pseudonymisée) peuvent être partagées avec nos partenaires Data à des fins de personnalisation de la publicité et des contenus qui vous sont proposés. Vous trouverez le détail de ces informations et pouvez vous y opposer
à tout moment
Plus généralement, vous bénéficiez d'un droit d'accès et de rectification de vos données personnelles, ainsi que celui d'en demander l'effacement dans les limites prévues par la loi. Vous pouvez également à tout moment revoir vos options en matière de prospection commerciale et ciblage. En savoir plus sur notre
politique de confidentialité
ou notre
politique Cookies
.
Les arnaques aux calendriers sont de retour
Les mutuelles vont coûter 200 euros de plus
Une nouvelle taxe à 180 euros
Cet objet insolite à ne surtout pas oublier dans un sac de survie
Un avantage fiscal réduit pour les retraités
Cette offre d'emploi promet 30.000 euros de salaire et des domestiques
Une demande pour avoir le chèque énergie