J'ai vu beaucoup d'exemples jQuery où la taille et le nom des paramètres sont inconnus.
Mon URL ne comportera qu'une seule chaîne:
http://example.com?sent=yes
Je veux juste détecter:
sent
Existe- t- il?- Est-ce égal à "oui"?
jquery
url
parameters
query-string
querystringparameter
LeBlaireau
la source
la source
Réponses:
La meilleure solution ici .
Et voici comment vous pouvez utiliser cette fonction en supposant l'URL est
http://dummy.com/?technology=jquery&blog=jquerybyexample
.la source
false
ounull
pour une recherche vide&
ou=
dans un paramètre.Solution à partir de 2020
Nous avons: http://example.com?sent=yes
Est-ce que envoyé existe ?
Est-ce égal à "oui"?
puis il suffit de le comparer.
la source
if ('URLSearchParams' in window) { // Browser supports URLSearchParams}
voir iciExtrait de code jQuery pour obtenir les variables dynamiques stockées dans l'URL en tant que paramètres et les stocker en tant que variables JavaScript prêtes à être utilisées avec vos scripts:
example.com?param1=name¶m2=&id=6
exemples de paramètres avec des espaces
la source
return results[1] || 0;
cela devrait êtrereturn decodeURI(results[1]) || 0;
|| 0
pièce car il y a déjà une vérification du résultat, ne retournerait-il pas toujours le tableau de correspondance?Je colle toujours cela comme une seule ligne. Maintenant, params a les vars:
multi-doublé:
en tant que fonction
que vous pourriez utiliser comme:
ou
la source
replace(/[?&;]+([^=]+)=([^&;]*)/gi
pour recomposer ";" caractère comme séparateur aussi.var params={};window.location.hash.replace(/[#&]+([^=&]+)=([^&]*)/gi,function(str,key,value){params[key] = value;});
Ceci est utile pour des choses comme AJAX où le hachage dans la fenêtre est mis à jour avec ajax-request mais aussi un utilisateur pour aller à un uri contenant un hachage.Encore une autre fonction alternative ...
la source
param('t') == param('sent') == 'yes'
dans l'exemple OP. Voici une solution:return (location.search.split(new RegExp('[?&]' + name + '='))[1] || '').split('&')[0]
; Notez également que vous ne pouvez pas dire si le paramètre existe car vous obtenez une chaîne vide pour les paramètres manquants.return (location.search.split('?' + name + '=')[1] || location.search.split('&' + name + '=')[1] || '').split('&')[0];
C'est peut-être trop tard. Mais cette méthode est très facile et simple
MISE À JOUR
Nécessite le plugin url: plugins.jquery.com/url
Merci -Ripounet
la source
Ou vous pouvez utiliser cette petite fonction intéressante , car pourquoi des solutions trop compliquées?
qui a l'air encore mieux une fois simplifié et en ligne:
tl; dr solution à une ligne
Mais que faire si vous avez des caractères encodés ou des clés à plusieurs valeurs ?
Vous feriez mieux de voir cette réponse: Comment puis-je obtenir des valeurs de chaîne de requête en JavaScript?
Sneak peak
la source
En utilisant
URLSearchParams
:Faites attention à la compatibilité (Généralement, c'est bien, mais IE et Edge peuvent être une histoire différente, vérifiez ceci pour une référence compatible: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams )
la source
Celui-ci est simple et a fonctionné pour moi
donc si votre URL est http://www.votresite.com?city=4
essaye ça
la source
Vous voudrez peut-être jeter un œil au dentiste JS ? (avertissement: j'ai écrit le code)
code:
avec Dentist JS, vous pouvez essentiellement appeler la fonction extract () sur toutes les chaînes (par exemple, document.URL.extract ()) et vous obtenez un HashMap de tous les paramètres trouvés. Il est également personnalisable pour gérer les délimiteurs et tout.
Version réduite <1kb
la source
J'espère que cela vous aidera.
la source
la source
Essayez cette démo fonctionnelle http://jsfiddle.net/xy7cX/
API:
inArray
: http://api.jquery.com/jQuery.inArray/Cela devrait aider
:)
code
la source
Il y a cette grande bibliothèque: https://github.com/allmarkedup/purl
ce qui vous permet de faire simplement
L'exemple suppose que vous utilisez jQuery. Vous pouvez également l'utiliser tout comme du javascript, la syntaxe serait alors un peu différente.
la source
Cela pourrait être exagéré, mais il y a une bibliothèque assez populaire maintenant disponible pour les URIs d' analyse syntaxique, appelée URI.js .
Exemple
la source
Si simple que vous pouvez utiliser n'importe quelle URL et obtenir de la valeur
Exemple d'utilisation
Remarque: Si un paramètre est présent plusieurs fois (? First = value1 & second = value2), vous obtiendrez la première valeur (value1) et la deuxième valeur comme (value2).
la source
Cela vous donnera un bel objet avec lequel travailler
Et alors;
la source
Ceci est basé sur la réponse de Gazoris , mais l'URL décode les paramètres afin qu'ils puissent être utilisés lorsqu'ils contiennent des données autres que des chiffres et des lettres:
la source
Il existe un autre exemple d'utilisation de la bibliothèque URI.js.
L'exemple répond aux questions exactement comme posées.
la source
La meilleure solution ici .
Avec la fonction ci-dessus, vous pouvez obtenir des valeurs de paramètre individuelles:
la source
Version coffeescript de la réponse de Sameer
la source
Une légère amélioration de la réponse de Sameer, cache les paramètres dans la fermeture pour éviter d'analyser et de parcourir tous les paramètres à chaque appel
la source
J'utilise ça et ça marche. http://codesheet.org/codesheet/NF246Tzs
la source
Avec vanilla JavaScript, vous pouvez facilement prendre les paramètres (location.search), obtenir la sous-chaîne (sans le?) Et la transformer en un tableau, en la divisant par '&'.
Lorsque vous parcourez urlParams, vous pouvez ensuite diviser à nouveau la chaîne avec '=' et l'ajouter à l'objet 'params' en tant qu'objet [elmement [0]] = element [1]. Super simple et facile d'accès.
http://www.website.com/?error=userError&type=handwritten
la source
Que se passe-t-il s'il y a un paramètre & in URL comme filename = "p & g.html" & uid = 66
Dans ce cas, la 1ère fonction ne fonctionnera pas correctement. J'ai donc modifié le code
la source
Certes, j'ajoute ma réponse à une question trop répondue, mais cela présente les avantages de:
- Ne dépendant d'aucune bibliothèque extérieure, y compris jQuery
- Ne pollue pas l'espace de noms des fonctions globales, en étendant 'String'
- Ne pas créer de données globales et effectuer un traitement inutile après la correspondance trouvée
- Gestion des problèmes de codage et acceptation (en supposant) du nom de paramètre non codé
- Éviter les
for
boucles explicitesEnsuite, vous l'utiliseriez comme:
la source
Si vous souhaitez rechercher un paramètre spécifique à partir d'une URL spécifique:
la source
Une autre solution qui utilise jQuery et JSON, afin que vous puissiez accéder aux valeurs des paramètres via un objet.
En supposant que votre URL est
http://example.com/?search=hello+world&language=en&page=3
Après cela, il suffit d'utiliser des paramètres comme celui-ci:
rendre
L'utilisation la plus utile de ceci est de l'exécuter au chargement de la page et d'utiliser une variable globale pour utiliser les paramètres partout où vous en avez besoin.
Si votre paramètre contient des valeurs numériques, il suffit d'analyser la valeur.
S'il n'y a pas de paramètres, ce
param
sera juste un objet vide.la source
la source
utilisez ceci
la source