J'ai une URL comme celle-ci:
http://localhost/PMApp/temp.htm?ProjectID=462
Ce que je dois faire est d'obtenir les détails après le ?
signe (chaîne de requête) - c'est-à-dire ProjectID=462
. Comment puis-je obtenir cela en utilisant JavaScript?
Voici ce que j'ai fait jusqu'à présent:
var url = window.location.toString();
url.match(?);
Je ne sais pas quoi faire ensuite.
javascript
query-string
AbdulAziz
la source
la source
location.search
Réponses:
Jetez un œil à l' article de MDN sur
window.location
.La QueryString est disponible dans
window.location.search
.Solution qui fonctionne également dans les anciens navigateurs
MDN fournit un exemple (qui n'est plus disponible dans l'article référencé ci-dessus) sur la façon d'obtenir la valeur d'une clé unique disponible dans la QueryString. Quelque chose comme ça:
Dans les navigateurs modernes
Dans les navigateurs modernes, vous avez la
searchParams
propriété de l'interface URL, qui renvoie un objet URLSearchParams . L'objet retourné a un certain nombre de méthodes pratiques, y compris une méthode get. Donc, l'équivalent de l'exemple ci-dessus serait:L' interface URLSearchParams peut également être utilisée pour analyser des chaînes dans un format de chaîne de requête et les transformer en un objet URLSearchParams pratique.
Notez que la prise en charge du navigateur est toujours limitée sur cette interface, donc si vous avez besoin de prendre en charge les anciens navigateurs, restez avec le premier exemple ou utilisez un polyfill .
la source
encodeURIComponent/decodeURIComponent
place deescape/unescape
getQueryStringValue
pour les navigateurs hérités, ne fonctionne pas pour?foo=bar&foo1=bar1
Si nous essayons de récupérer la valeur pourfoo
, elle retourneempty string
.Utilisez
window.location.search
pour tout obtenir après avoir?
inclus?
Exemple:
la source
let querystring = window.location.search.substring(1);
la source
Cela ajoutera une fonction globale pour accéder aux variables queryString sous forme de carte.
Prendre plaisir.
la source
Si vous avez utilisé Typescript et que vous avez dom dans votre bibliothèque de
tsconfig.json
, vous pouvez faire:la source
Vous pouvez utiliser cette fonction, pour séparer la chaîne de? Id =
voici le violon
la source
Vous pouvez l'utiliser pour trouver une valeur directe via le nom des paramètres.
la source
la source
Vous pouvez utiliser la
search
propriété de l'window.location
objet pour obtenir la partie requête de l'URL. Notez qu'il inclut le point d'interrogation (?) Au début, juste au cas où cela affecte la façon dont vous avez l'intention de l'analyser.la source
Vous devriez jeter un oeil à l'API URL qui a des méthodes d'aide pour y parvenir en tant que
URLSearchParams
: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParamsCe n'est actuellement pas pris en charge par tous les navigateurs modernes, alors n'oubliez pas de le polyfill (Polyfill disponible en utilisant https://qa.polyfill.io/ ).
la source
maintenant vous avez la partie requête dans queryString
Le premier remplacement supprimera tous les espaces blancs, le second remplacera toute la partie '&' par "," et enfin le troisième remplacement mettra ":" à la place des signes '='.
Supposons donc que vous ayez une requête comme abc = 123 & efg = 456 . Maintenant, avant l'analyse, votre requête est convertie en quelque chose comme {"abc": "123", "efg": "456"}. Maintenant, lorsque vous analyserez cela, cela vous donnera votre requête en objet json.
la source
Convertissez-le en tableau puis divisez-le avec '?'
la source
la source
Essaye celui-là
Supposons que votre URL soit http: //example.com&this=chicken&that=sandwich . Vous voulez obtenir la valeur de ceci, cela et un autre.
Si vous souhaitez utiliser une URL autre que celle de la fenêtre, vous pouvez en transmettre une comme second argument.
Référence
la source
Je pense qu'il est beaucoup plus sûr de s'appuyer sur le navigateur que sur n'importe quelle regex ingénieuse:
la source