Obtenir l'url le paramètre jquery Ou Comment Obtenir des Valeurs de Chaîne de Requête En js
J'ai vu beaucoup de jQuery exemples où le paramètre de la taille et le nom sont inconnus. Mon url ne va jamais avoir 1 chaîne:
http://example.com?sent=yes
Je veux juste détecter:
- Ne
sent
existent? - Est-il égal à "oui"?
- double possible de Comment puis-je obtenir des valeurs de chaîne de requête?
- stackoverflow.com/questions/1403888/...
- stackoverflow.com/a/901144/979621
- La meilleure solution que j'ai jamais vu [ici][1] [1]: stackoverflow.com/a/901144/3106590
- Il y a maintenant un plugin/bibliothèque pour celle-ci, appelée URI.js: github.com/medialize/URI.js
Vous devez vous connecter pour publier un commentaire.
Meilleure solution ici.
Et ce est la façon dont vous pouvez utiliser cette fonction en supposant que l'URL est,
http://dummy.com/?technology=jquery&blog=jquerybyexample
.;
est un juridique le délimiteur ce qui ne tient pas compte.false
ounull
de recherche vide?param1¶m2
modifier le retourner à:return sParameterName[1] === undefined ? true : sParameterName[1];
sPageURL=decodeURIComponent(sPageURL);
d'avoir des caractères spéciaux comme espace et " s'affiche correctement&
ou=
dans la valeur d'un paramètre.?technology=jquery&technology=css
).return false;
à la fin de la fonction.var url =
nouveau > URI(
'exemple.com?envoyé=yes');
var sendval = url.
searchParams ` (`"envoyé"); " et vous avez terminé! Je baisse voté. Même si c'est tentant de nice et les bonnes pratiques de codage pour écrire ya un homebrew fonction. Primaire utiliser les fonctions ya bibliothèque / framework offre, jusqu'à ce que vous avez de bonnes raisons de ne pas.var getUrlParameter =
si vous souhaitez conserver le nom de la fonctionvar url = new URL( 'http://example.com?sent=yes' ), sendval = url. searchParams.get('sent')
voir developer.mozilla.org/en-US/docs/Web/API/...sParameterName[0]
devrait êtredecodeURIComponent(sParameterName[0])
Solution de 2019
Nous avons: http://example.com?sent=yes
Ne envoyé existent?
Est-il l'égalité des à "oui"?
et puis il suffit de comparer.
if ('URLSearchParams' in window) { // Browser supports URLSearchParams}
Voir icihttp%3A%2F%2Fexample...
Donc, si vous avez besoin de changer l'URL ou les corriger et d'éviter ce genre de type de violer le faire comme ceci: Utiliserurl=new URI(window.location.search)
Puisparam = url.searchParams;
Le reste du code ci-dessus est très bien.const
au lieulet
. Juste pour dire...jQuery extrait de code pour obtenir la dynamique des variables stockées dans l'url sous la forme de paramètres et de les stocker en tant que variables JavaScript prêt pour une utilisation avec vos scripts:
exemple.com?param1=nom¶m2=&id=6
exemple params avec des espaces
return results[1] || 0;
il devrait êtrereturn decodeURI(results[1]) || 0;
|| 0
partie puisqu'il y a déjà un chèque pour le résultat, ne serait-il pas toujours de retour le match ensemble ?#
et puis un deuxième?
. Comment puis-je modifier la regex pour trouverharry
dans cette url?http://some.site.com/page.aspx?a=1&b=2&c=3&d=4#e=5&f=6?g=harry
J'ai toujours coller cette ligne. Maintenant params a vars:
multi-alignés:
en fonction
que vous pourriez utiliser comme:
ou
replace(/[?&;]+([^=]+)=([^&;]*)/gi
à reconize caractère ";" comme séparateur trop.var params={};window.location.hash.replace(/[#&]+([^=&]+)=([^&]*)/gi,function(str,key,value){params[key] = value;});
C'est utile pour des choses telles que l'AJAX où le hachage de la fenêtre est mise à jour avec ajax de la demande, mais aussi l'un à l'utilisateur d'aller à un uri contenant une table de hachage.?a_parameter
. Il serait génial si ce produit{'a_parameter' : null }
au lieu de{}
function(s,k,v){p[k]=v; return v;})
Peut-être c'est trop tard. Mais cette méthode est très facile et simple
Mise à JOUR
Nécessite l'url du plugin : plugins.jquery.com/url
Merci -Ripounet
Encore une autre variante de la fonction...
param('t') == param('sent') == 'yes'
dans l'OP exemple. Voici un correctif:return (location.search.split(new RegExp('[?&]' + name + '='))[1] || '').split('&')[0]
; notez Aussi que vous ne pouvez pas dire si le paramètre n'existe que parce que vous obtenez une chaîne vide pour les paramètres manquants.return (location.search.split('?' + name + '=')[1] || location.search.split('&' + name + '=')[1] || '').split('&')[0];
Ou vous pouvez utiliser cette jolie petite fonction, parce que pourquoi être trop compliqué de trouver des solutions?
qui est encore mieux quand simplifié et onelined:
tl;dr une solution en ligne
Mais que faire si vous avez caractères codés ou à valeurs multiples touches?
Mieux vous voir cette réponse: Comment puis-je obtenir des valeurs de chaîne de requête en JavaScript?
Pic
À l'aide de
URLSearchParams
:Être prudent au sujet de la compatibilité (Surtout que c'est bien, mais IE et le Bord, peut être différent, vérifier compatible référence: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams)
Peut-être que vous pourriez vouloir donner à Dentiste JS un coup d'oeil? (disclaimer: j'ai écrit le code)
code:
avec le Dentiste JS, vous pouvez appeler l'extrait() la fonction sur toutes les chaînes (par exemple, document.URL.extrait() ) et vous obtenez en retour un HashMap de tous les paramètres trouvés. Il est également personnalisable à traiter avec des séparateurs et tous.
Version minifiée < 1 ko
Celui-ci est simple et travaillé pour moi
donc, si votre url est http://www.yoursite.com?city=4
essayer cette
JS:
J'espère que cela aidera.
Il y a cette grande bibliothèque:
https://github.com/allmarkedup/purl
qui vous permet de le faire simplement
L'exemple est en supposant que vous êtes à l'aide de jQuery. Vous pouvez également l'utiliser comme un simple javascript, la syntaxe serait alors un peu différent.
Cela peut-être exagéré, mais il est assez populaire bibliothèque maintenant disponibles pour l'analyse d'Uri, appelé URI.js.
Exemple
JS:
HTML:
Si simple, vous pouvez utiliser une url et obtenir la valeur
Exemple D'Utilisation
Remarque: Si un paramètre est présent plusieurs fois (?tout d'abord=valeur1&seconde=valeur2), vous obtiendrez la première valeur (valeur1) et de la deuxième valeur (valeur2).
Essayer cette de travail démo http://jsfiddle.net/xy7cX/
API:
inArray
: http://api.jquery.com/jQuery.inArray/Cela devrait aider
:)
code
Cela vous donnera un bel objet à travailler avec
Et puis;
Ceci est basé sur Gazoris's réponse, mais l'URL décode les paramètres de sorte qu'ils peuvent être utilisés lorsqu'ils contiennent des données autres que des chiffres et des lettres:
Il y a un autre exemple avec l'aide de URI.js bibliothèque.
Exemple les réponses aux questions exactement comme demandé.
JS:
HTML:
Meilleure solution ici.
Avec la fonction ci-dessus, vous pouvez obtenir les valeurs de paramètre:
Coffeescript version de Sameer la réponse de
Une légère amélioration de Sameer réponse, cache params dans la fermeture pour éviter d'analyse et de lecture en boucle par tous les paramètres à chaque fois que l'appel de
J'utilise et ça marche.
http://codesheet.org/codesheet/NF246Tzs
À la vanille, avec JavaScript, vous pouvez facilement prendre les paramètres (emplacement.de recherche), d'obtenir la sous-chaîne (sans ?) et de le transformer en un tableau, en les divisant par " &".
Que vous itérer urlParams, vous pouvez fractionner la chaîne de nouveau avec '=' et l'ajouter à la 'params' objet comme objet[elmement[0]] = element[1]. Super simple et facile d'accès.
http://www.website.com/?error=userError&type=manuscrite
S'il y a le & dans les paramètre de l'URL comme nom de fichier="p&g.html"&uid=66
Dans ce cas, le 1er ne fonctionne pas correctement. J'ai donc modifié le code
Certes je vais ajouter ma réponse à une sur-répondu à la question, mais cela a pour avantages de:
-- Ne dépend pas de l'extérieur, les bibliothèques, y compris jQuery
-- Ne pas polluer la fonction globale de l'espace de noms, par l'extension de 'String'
-- Pas de créer toutes les données mondiales et de faire d'inutiles de traitement après le match trouvé
- Gérer des problèmes de codage, et d'accepter (en supposant) des non-codée nom de paramètre
-- Évitant explicite
for
bouclesAlors que vous souhaitez utiliser en tant que:
Si vous voulez trouver un paramètre spécifique à partir d'une url spécifique:
Une autre solution qui utilise jQuery et JSON, donc vous pouvez accéder à des valeurs de paramètre par l'intermédiaire d'un objet.
En supposant que votre URL est
http://example.com/?search=hello+world&language=en&page=3
Après que c'est seulement une question d'utiliser les paramètres comme ceci:
de retour
Les plus utiles de l'utilisation de ce est de l'exécuter au chargement de la page et utiliser une variable globale pour utiliser les paramètres de n'importe où vous pourriez en avoir besoin.
Si votre paramètre contient des valeurs numériques puis il suffit d'analyser la valeur.
Si il n'y a pas de paramètres
param
va juste être un objet vide.utiliser cette
Voulais juste montrer mes codes:
}
JS:
RequestQuerystring est maintenant un objet avec vous tous les paramètres de
Obtenir les param partir d'une chaîne:
à utiliser: