Ich habe viele jQuery-Beispiele gesehen, bei denen Größe und Name des Parameters unbekannt sind.
Meine URL wird immer nur eine Zeichenfolge haben:
http://beispiel.com?sent=yes
Ich möchte nur erkennen:
- Existiert
sent
? - Ist es gleich "yes"?
Ich habe viele jQuery-Beispiele gesehen, bei denen Größe und Name des Parameters unbekannt sind.
Meine URL wird immer nur eine Zeichenfolge haben:
http://beispiel.com?sent=yes
Ich möchte nur erkennen:
sent
?So einfach, dass Sie jede URL verwenden und den Wert abrufen können
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
Verwendungsbeispiel
// Abfragezeichenfolge: ?first=value1&second=&value2
var foo = getParameterByName('first'); // "value1"
var bar = getParameterByName('second'); // "value2"
Hinweis: Wenn ein Parameter mehrmals vorhanden ist (?first=value1&second=value2), erhalten Sie den ersten Wert (value1) und den zweiten Wert (value2).
Es gibt diese tolle Bibliothek: https://github.com/allmarkedup/purl
mit der du einfach tun kannst
url = 'http://example.com?sent=yes';
sent = $.url(url).param('sent');
if (typeof sent != 'undefined') { // sent existiert
if (sent == 'yes') { // sent entspricht yes
// ...
}
}
Das Beispiel geht davon aus, dass du jQuery verwendest. Du könntest es auch einfach als reinen JavaScript verwenden, die Syntax wäre dann ein wenig anders.
http://example.com?sent=yes
Beste Lösung hier.
function getUrlParameter(name) {
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
var results = regex.exec(location.href);
return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
};
Mit der obigen Funktion können Sie individuelle Parameterwerte abrufen:
getUrlParameter('sent');
Dies basiert auf der Antwort von Gazoris, decodiert jedoch die URL-Parameter, damit sie verwendet werden können, wenn sie Daten enthalten, die nicht nur aus Zahlen und Buchstaben bestehen:
function urlParam(name){
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
// Die URL-Parameter müssen decodiert werden, einschließlich einer Lösung für das Pluszeichen
// https://stackoverflow.com/a/24417399
return results ? decodeURIComponent(results[1].replace(/\+/g, '%20')) : null;
}
Es gibt ein weiteres Beispiel für die Verwendung der URI.js Bibliothek.
Das Beispiel beantwortet die Fragen genau so, wie sie gestellt wurden.
var url = 'http://example.com?sent=yes';
var urlParams = new URI(url).search(true);
// 1. Existiert "sent"?
var sendExists = urlParams.sent !== undefined;
// 2. Ist es gleich "yes"?
var sendIsEqualtToYes = urlParams.sent == 'yes';
// Ergebnisse in lesbarer Form ausgeben
// nicht für die Produktion erforderlich
if (sendExists) {
console.log('Die URL hat den Parameter "sent", dessen Wert "' + urlParams.sent + '" lautet');
if (urlParams.sent == 'yes') {
console.log('Der Parameter "sent" entspricht "yes"');
} else {
console.log('Der Parameter "sent" entspricht nicht "yes"');
}
} else {
console.log('Die URL hat keinen Parameter "sent"');
}
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.